当我们使用连接字符串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);
}
答案 0 :(得分:1)
您正在使用数据而不是 @Data
cmd.Parameters.AddWithValue(“数据”,字节)
所以这是发送
的正确方法cmd.Parameters.AddWithValue(“@ Data”,bytes);
答案 1 :(得分:1)
当您发送变量 数据 时,您正在使用 @Data 变量在表格中插入值仅
cmd.Parameters.AddWithValue("Data", bytes); // error prompt code
cmd.Parameters.AddWithValue("@Data", bytes); // correct Code
答案 2 :(得分:-1)
由于FileUpload1.PostedFile,很可能你的代码抛出NullReferenceException为null。
您可能在UpdatePanel中添加了FileUpload。如果是,那么您需要使用PostBackTrigger。