InsertRecord(id, Convert.ToByte(dr[2]), Convert.ToString(dr[0]), Convert.ToString(dr[3]), Convert.ToString(dr[1]), Convert.ToString(dr[4]), Convert.ToString(dr[5])); //就是这儿报错,,先试Convert.ToByte(dr[2].ToString()),
不行的话调试看一下dr[2]是什么值
不行的话调试看一下dr[2]是什么值
解决方案 »
- 关于正则提取网址的问题,在线等~十万火急
- 基于VS2005构建的静态搜索引擎和AJAX树,等其他源码发布共享
- GridView1_RowDeleting 事件不响应
- 怎样在背景图的某一点上插入一个gif文件
- 请教,日文软件的开发流程是怎样的?
- (感谢 孟子E章 帮助 )终于用LDAP访问目录服务 Active directory 并种了棵树(源码),跟大家分享一下。 (高手不要进了,浪费时间)
- 重新刷新模态窗体的一个大问题???
- .NET Framework 类浏览器问题
- 语法错误,大家帮我看看:
- 急问:调试出现错误--请指点
- 请教如何解决sharpziplib.dll中的(.Zip)压缩中文问题。
- 在C#中,怎样把一个乱码转成utf-8显示
InsertRecord(id, (byte[])dr[2],
public void myInsert()
{
Int32 intFileLength;
string strFileType;
string strFileName;
Stream stmFile;
strFileName="";
strFileName=FileBox1.PostedFile.FileName;
intFileLength=FileBox1.PostedFile.ContentLength;
strFileType=FileBox1.PostedFile.ContentType;
//strFileType="dd";
stmFile=FileBox1.PostedFile.InputStream;
byte[] ByteFile=new byte[intFileLength];
stmFile.Read(ByteFile,0,intFileLength);
SqlConnection myCon=new SqlConnection("server=(local);database=test;uid=sa;pwd=");
string strCom="INSERT INTO FileByField Values(@Name,@FileData,@FileType,@FileLength)";
SqlCommand myCom=new SqlCommand(strCom,myCon);
myCom.Parameters.Add("@Name",SqlDbType.Char,255);
myCom.Parameters.Add("@FileData",SqlDbType.Image);
myCom.Parameters.Add("@FileType",SqlDbType.Char,255);
myCom.Parameters.Add("@FileLength",SqlDbType.BigInt);
myCom.Parameters["@Name"].Value=strFileName.Trim();
myCom.Parameters["@FileData"].Value=ByteFile;
myCom.Parameters["@FileType"].Value=strFileType;
myCom.Parameters["@FileLength"].Value=intFileLength;
myCon.Open();
try
{ myCom.ExecuteNonQuery(); }
catch(SqlException e)
{
if(e.Number==2627)
Response.Write("PrimaryKey Error");
else
Response.Write("Other Error");
}
myCon.Close();
BindData();
}
strFileName="";
strFileName=FileBox1.PostedFile.FileName;
intFileLength=FileBox1.PostedFile.ContentLength;
strFileType=FileBox1.PostedFile.ContentType;
//strFileType="dd";
stmFile=FileBox1.PostedFile.InputStream;
byte[] ByteFile=new byte[intFileLength];
stmFile.Read(ByteFile,0,intFileLength);
关键在这,你要建一个Stream,把FileBox1.PostedFile,InputStream,读到一个byte[]中
然后赋值给image字段
dr[2] = ByteFile;调用时用
InsertRecord(id, dr[2], Convert.ToString(dr[0]), Convert.ToString(dr[3]), Convert.ToString(dr[1]), Convert.ToString(dr[4]), Convert.ToString(dr[5]));
和
InsertRecord(id, (byte[])dr[2], Convert.ToString(dr[0]), Convert.ToString(dr[3]), Convert.ToString(dr[1]), Convert.ToString(dr[4]), Convert.ToString(dr[5]));
都行,因为ByteFile已是byte[]了,不需要转换也行了