byte[]类型如何插入数据库 急!!!!

alex_gaofeng 2009-06-02 03:37:46
获取指纹变量为byte[]类型 如何插入sqlserver为varbinary的列中

忘高手解答!!!!!!!
...全文
439 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
alex_gaofeng 2009-06-02
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 luafie 的回复:]
可能要转换一下类型好些吧。
[/Quote]


public bool Add_Zwcj(string User_Name, byte[] Zmz, byte[] Zsz, byte[] Zzz, byte[] Zwmz, byte[] Zxz,
byte[] Ymz, byte[] Ysz, byte[] Yzz, byte[] Ywmz, byte[] Yxz)
{
cn.Open();
SqlTransaction tran = cn.BeginTransaction();
SqlCommand cm = new SqlCommand();
cm.Connection = cn;
cm.Transaction = tran;
cm.Parameters.Add(new SqlParameter("@Zmz",SqlDbType.VarBinary,1000));
cm.Parameters.Add(new SqlParameter("@Zsz", SqlDbType.VarBinary,1000));
cm.Parameters.Add(new SqlParameter("@Zzz", SqlDbType.VarBinary,1000));
cm.Parameters.Add(new SqlParameter("@Zwmz", SqlDbType.VarBinary,1000));
cm.Parameters.Add(new SqlParameter("@Zxz", SqlDbType.VarBinary,1000));
cm.Parameters.Add(new SqlParameter("@Ymz", SqlDbType.VarBinary,1000));
cm.Parameters.Add(new SqlParameter("@Ysz", SqlDbType.VarBinary,1000));
cm.Parameters.Add(new SqlParameter("@Yzz", SqlDbType.VarBinary,1000));
cm.Parameters.Add(new SqlParameter("@Ywmz", SqlDbType.VarBinary,1000));
cm.Parameters.Add(new SqlParameter("@Yxz", SqlDbType.VarBinary,1000));
cm.Parameters[0].Value = Zmz;
cm.Parameters[1].Value = Zsz;
cm.Parameters[2].Value = Zzz;
cm.Parameters[3].Value = Zwmz;
cm.Parameters[4].Value = Zxz;
cm.Parameters[5].Value = Ymz;
cm.Parameters[6].Value = Ysz;
cm.Parameters[7].Value = Yzz;
cm.Parameters[8].Value = Ywmz;
cm.Parameters[9].Value = Yxz;
try
{
cm.CommandText = "insert into Aj_Zwcj values ('" + Guid.NewGuid().ToString() + "','"+User_Name.ToString()+"',@Zmz,@Zsz,@Zzz,@Zwmz,@Zxz,@Ymz,@Ysz,@Yzz,@Ywmz,@Yxz)";
if (cm.ExecuteNonQuery() > 0)
{
return true;
}
else
{
return false;
}
tran.Commit();
}
catch (Exception ex)
{
tran.Rollback();
return false;
}
finally
{
cn.Close();
}
}

报错 -----------无法创建大小为 8113 的行,该值大于允许的最大值 8060。
语句已终止。
十八道胡同 2009-06-02
  • 打赏
  • 举报
回复
要转换一下类型吧。
ps:发现3楼一个错误,改为string _SqlCommand = "Insert into Table1 (ColumnBytes)values(@ColumnBytes)";
alex_gaofeng 2009-06-02
  • 打赏
  • 举报
回复
不行啊..
fengjian_428 2009-06-02
  • 打赏
  • 举报
回复
用参数传
jimh 2009-06-02
  • 打赏
  • 举报
回复
byte[]一般使用参数的形式传入数据库,如果直接写进sql语句,需要做16进制编码处理。
zgke 2009-06-02
  • 打赏
  • 举报
回复
使用SqlParameter

string _SqlCommand = "Insert info Table1 (ColumnBytes)values(@ColumnBytes)";
SqlCommand _Command = new SqlCommand(_SqlCommand, ????);
_Command.Parameters.Add(new SqlParameter("@ColumnBytes", SqlDbType.VarBinary, 长度));
_Command.Parameters[0].Value=byte[] //你的byte;

_Command.ExecuteNonQuery();
luafie 2009-06-02
  • 打赏
  • 举报
回复
可能要转换一下类型好些吧。
SQL77 2009-06-02
  • 打赏
  • 举报
回复
用FOR(INT I=0;I<数组.LENGHT;I++)读取
{
插入数据库..
}

110,534

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧