图片上传问题目
发表在ASP.NET图书答疑 2009-11-20
是否精华
版块置顶:
asp.net程序开发范例宝典一书第一版实例139(将图片以二进制格式存储到数据库中),如果我在加上别的文本框一起往数据库里录入数据,有时需要加图片,有时可能没有图片,我改这个例子,不加图片就不能成功,必须得加,请指教一下,如何在没有图片的情况下也能提交,下面是我写的代码

 try
        {
            
            
            string ImgPath = FileUpload1.PostedFile.FileName;
            string ImgName = ImgPath.Substring(ImgPath.LastIndexOf("\\") + 1);
            string ImgExtend = ImgPath.Substring(ImgPath.LastIndexOf(".") + 1);
            if (!(ImgExtend == "bmp" || ImgExtend == "jpg" || ImgExtend == "gif"))
            {
                Label3.Text = "上传图片的格式不正确!";
                return;
            }
            int FileLen = this.FileUpload1.PostedFile.ContentLength;
            Byte[] FileData = new Byte[FileLen];
            HttpPostedFile hp = FileUpload1.PostedFile;//创建访问客户端上传文件的对象 
            Stream sr = hp.InputStream;//创建数据流对象
            sr.Read(FileData, 0, FileLen);//将图片数据放到FileData数组对象实例中,其中0代表数组指针的起始位置,FileLen表示要读取流的长度(指针的结素位置)
            SqlConnection con = new SqlConnection("server=(local);user id=sa;pwd=;database=db_Register");
            con.Open();
            SqlCommand com = new SqlCommand("INSERT INTO goods (姓名,名称,数量,picture) VALUES ('" + name.Text + "','" + good.Text + "','" + number.Text + "',@imgdata)", con);
            com.Parameters.Add("@imgdata", SqlDbType.Image);
            com.Parameters["@imgdata"].Value = FileData;
            com.ExecuteNonQuery();
           // Label3.Text = "保存成功!";
            Response.Write("<script>alert('数据插入成功!')</script>");
        }
        catch (Exception error)
        {
          //  Label3.Text = "处理失败!原因为:" + error.ToString();
            Response.Write("<script language=javascript>alert('添加失败!为什么呢?')</script>");

        }

以上代码好用,但是必须得选图片,我想改成可选可不选都能添加的
请指点下,谢谢
分享到:
精彩评论 2
Confidence2009
学分:0 LV1
2009-11-20
沙发
你这个实例的编写必须得选图片,因为你在向数据库中添加数据时设置的SQL语句为:“INSERT INTO goods (姓名,名称,数量,picture) VALUES ('" + name.Text + "','" + good.Text + "','" + number.Text + "',@imgdata)”,其中picture在数据库是用来存二进制数据的,其数据类型设置了image类型了吧
如果你要实现“可选可不选都能添加”那么就用一个if语句做下判断,判断下是否上传了图片,如果没有上传图片就设置SQL语句为:“INSERT INTO goods (姓名,名称,数量) VALUES ('" + name.Text + "','" + good.Text + "','" + number.Text + "')”,反之,如果上传了图片就执行你写的那个SQL语句。
Confidence2009
学分:0 LV1
2009-11-20
板凳
try
{
string ImgPath = FileUpload1.PostedFile.FileName;
string ImgName = ImgPath.Substring(ImgPath.LastIndexOf("\\") + 1);
string ImgExtend = ImgPath.Substring(ImgPath.LastIndexOf(".") + 1);
[strong]if(FileUpload1.PostedFile.FileName!="")[/strong]
{
if (!(ImgExtend == "bmp" || ImgExtend == "jpg" || ImgExtend == "gif"))
{
Label3.Text = "上传图片的格式不正确!";
return;
}
int FileLen = this.FileUpload1.PostedFile.ContentLength;
Byte[] FileData = new Byte[FileLen];
HttpPostedFile hp = FileUpload1.PostedFile;//创建访问客户端上传文件的对象 
Stream sr = hp.InputStream;//创建数据流对象
sr.Read(FileData, 0, FileLen);//将图片数据放到FileData数组对象实例中,其中0代表数组指针的起始位置,FileLen表示要读取流的长度(指针的结素位置)
SqlConnection con = new SqlConnection("server=(local);user id=sa;pwd=;database=db_Register");
con.Open();
SqlCommand com = new SqlCommand("INSERT INTO goods (姓名,名称,数量,picture) VALUES ('" + name.Text + "','" + good.Text + "','" + number.Text + "',@imgdata)", con);
com.Parameters.Add("@imgdata", SqlDbType.Image);
com.Parameters["@imgdata"].Value = FileData;
com.ExecuteNonQuery();
// Label3.Text = "保存成功!";
Response.Write("<script>alert('数据插入成功!')</script>");
}
catch (Exception error)
{
// Label3.Text = "处理失败!原因为:" + error.ToString();
Response.Write("<script language=javascript>alert('添加失败!为什么呢?')</script>");
}
}
else
{
SqlConnection con = new SqlConnection("server=(local);user id=sa;pwd=;database=db_Register");
con.Open();
SqlCommand com = new SqlCommand[strong]("INSERT INTO goods (姓名,名称,数量) VALUES ('" + name.Text + "','" + good.Text + "','" + number.Text + "')[/strong]", con);
if(Convert.ToInt32(com.ExecuteNonQuery())>0)
{
Response.Write("<script>alert('添加成功!')</script>);
}
else
{
Response.Write("<script>alert('添加失败!')</script>);
}
}
首页上一页 1 下一页尾页 2 条记录 1/1页
手机同步功能介绍
友情提示:以下图书配套资源能够实现手机同步功能
明日微信公众号
明日之星 明日之星编程特训营
客服热线(每日9:00-17:00)
400 675 1066
mingrisoft@mingrisoft.com
吉林省明日科技有限公司Copyright ©2007-2022,mingrisoft.com, All Rights Reserved长春市北湖科技开发区盛北大街3333号长春北湖科技园项目一期A10号楼四、五层
吉ICP备10002740号-2吉公网安备22010202000132经营性网站备案信息 营业执照