我可以使用fileupload控件选择多个文件,但是当我尝试将其保存到数据库时,它会给我一个“未设置为对象实例的对象引用”错误。
if (FileUpload1.HasFiles)
{
foreach (HttpPostedFile uploaded in FileUpload1.PostedFiles)
{
bindata = new BinaryReader(uploaded.InputStream);
ImageByteArray = bindata.ReadBytes(uploaded.ContentLength);
// byte array is sent to a method
dbmt.SaveImageToDB(ImageByteArray);
}
}
以下是我的SaveImageToDB方法代码
public void SaveImageToDB(byte[] ImageByteArray)
{
try
{
scon.Open();
scm.Connection = scon;
scm.CommandType = CommandType.StoredProcedure;
scm.CommandText = "SaveProfileImage";
SqlParameter paramImgArray = scm.Parameters.Add("@ImgBody", SqlDbType.Image,0);
paramImgArray.Direction = ParameterDirection.Input;
paramImgArray.Value = ImageByteArray;
scm.ExecuteNonQuery();
}
catch( SqlException sqx )
{
throw sqx;
}
}
答案 0 :(得分:0)
在fileupload控件中设置属性 AllowMultiple = True 。
protected void uploadFile_Click(object sender, EventArgs e)
{
if (UploadImages.HasFiles)
{
foreach (HttpPostedFile uploadedFile in UploadImages.PostedFiles)
{
uploadedFile.SaveAs(System.IO.Path.Combine(Server.MapPath("~/Images/"),
uploadedFile.FileName));
listofuploadedfiles.Text += String.Format("{0}<br/>", uploadedFile.FileName);
}
}
}
答案 1 :(得分:0)
我知道它在上述方法中出错了,但是该方法中的哪一行给出了这个错误?
我假设你在这里给出的方法是完整的(即没有你在此处粘贴之前删除的代码),所以我想只有2个对象可以为null,那些是“scon”和“供应链管理”。在“scon.Open();”行上设一个断点并在线“scm.Connection = scon;”。一旦执行在每条线上停止,将鼠标悬停在“scon”上,然后悬停在“scm”上。我猜其中任何一个都是null。
希望这有帮助。
答案 2 :(得分:0)
问题是我的目标。它没有正确实例化。我正在访问名为DBmiddleTier的appcode中的一个类来访问数据库并编写映像文件。这就是我做错了:DBMiddleTier dbmt; &LT; -----&#34; WRONG&#34 ;.以下是我为解决问题所做的工作DBMiddleTier dbmt = new DBMiddleTier();