Исключение NullReferenceException не было обработано кодом пользователя в C#
Когда мы создаем соединение, используя строку подключения NullReferenceException
произошло Ошибка
NullReferenceException не обрабатывается кодом пользователя.
Мой код приведен ниже:
protected void upload_Click(object sender, EventArgs e)
{
string filename = Path.GetFileName(FileUpload1.PostedFile.FileName);
string contentType = FileUpload1.PostedFile.ContentType;
using (Stream fs = FileUpload1.PostedFile.InputStream)
{
using(BinaryReader br = new BinaryReader(fs))
{
byte[] bytes = br.ReadBytes((Int32)fs.Length);
string constr =ConfigurationManager.ConnectionStrings["constr"].ConnectionString;
using (SqlConnection con = new SqlConnection(constr))
{
string query = "insert into tblFiles values(@Name, @ContentType, @Data)";
using (SqlCommand cmd = new SqlCommand(query))
{
cmd.Connection = con;
cmd.Parameters.AddWithValue("@Name", filename);
cmd.Parameters.AddWithValue("@contentType", contentType);
cmd.Parameters.AddWithValue("Data", bytes);
con.Open();
cmd.ExecuteNonQuery();
con.Close();
}
}
}
}
Response.Redirect(Request.Url.AbsoluteUri);
}
3 ответа
Вы используете данные вместо @Data в
cmd.Parameters.AddWithValue("Данные", байты)
так что это правильный способ отправки
cmd.Parameters.AddWithValue("@Data", байты);
Вы вставляете значение в таблицу, используя переменную @Data, а отправляете только переменную Data.
cmd.Parameters.AddWithValue("Data", bytes); // error prompt code
cmd.Parameters.AddWithValue("@Data", bytes); // correct Code
Скорее всего, ваш код, выбрасывающий исключение NullReferenceException из-за FileUpload1.PostedFile, равен нулю.
Возможно, вы добавили FileUpload внутри UpdatePanel. Если да, то вам нужно использовать PostBackTrigger.