System.Data二进制类型.SqlClient.SqlException:“将截断字符串或二进制数据。 语句已终止。” 不知道哪里出错了,数据库里的类型和长度应该没有问题啊 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 你发送的数据更新 sql 语句和数据,仔细核对一下每一个字段的设计长度、实际字符串值的长度。注意.net 使用 unicode 字符,其长度不是匹配 varchar(...) 这中类型的长度的,而是它的2倍长度。 唉,csdn无法点击然后按照正常尺寸打开图片了,所以懒得看这些缩小了的图片了。以后不要在 csdn 发图片了。或者换其它论坛去发图片,然后这里贴链接地址。 很简单地给图片一个按钮链接,奇怪 csdn 怎么测试的啊? public void SaveImage(string FilmID, string s)//将图片以二进制存入数据库中 { string strimg = s; //记录图片的所在路径 FileStream fs = new FileStream(strimg, FileMode.Open, FileAccess.Read); //将图片以文件流的形式进行保存 BinaryReader br = new BinaryReader(fs); byte[] imgBytesIn = br.ReadBytes((int)fs.Length);//将流读入到字节数组中 string strConn = "Data Source=LAPTOP-KF9NN681;Initial Catalog=宿舍管理;Integrated Security=True"; SqlConnection conn = new SqlConnection(strConn); conn.Open(); StringBuilder strSql = new StringBuilder(); strSql.Append("update T_Film Set F_FPhoto=@Photo where F_FId='" + FilmID+"'"); SqlCommand cmd = new SqlCommand(strSql.ToString(), conn); cmd.Parameters.Add("@Photo",SqlDbType.Binary).Value = imgBytesIn; cmd.ExecuteNonQuery(); conn.Close(); } private void button1_Click(object sender, EventArgs e) { 指的是FilmID吗为何超长了 F_FPHOTO 超长了吧 实际字符串值的长度是按照给定的值判断吗,长度匹配 varchar(...) 2倍长度,是只能=2倍,还是可以只要大于2倍就可以 他的值 imgBytesIn {byte[4418]} F_FPhoto超长 binary是固定长度的(不可变) 你设置50就是最多50个字节二进制数据 肯定超长了啊将cmd.Parameters.Add("@Photo",SqlDbType.Binary).Value = imgBytesIn;改为 cmd.Parameters.Add("@Photo", SqlDbType.Binary, imgBytesIn.Length); cmd.Parameters["@Photo"].Value = byData;并把F_FPhoto字段长度改为 4418以上 对于Bitmap类结构图像进行放大,遇到Argument Exception异常 CLR类型到底是指什么? 有没有人用c#调用过windows 2003的IP安全策略的? 尝试为文件..附加自动命名的数据库,但失败 关于触发器和事务? 救命呀!!!求求你们救救我!! 我该怎么办!! 关于treeList的问题,高手请进。 C#~~如何在datagridview显示checkedlistbox选中项内容 银行取款的问题 C#页面上控件的Init事件得不到触发,事件已注册 Hibernate执行查询后更新了数据库 C#如何利用反射机制调用带参数的画面?
{
string strimg = s; //记录图片的所在路径
FileStream fs = new FileStream(strimg, FileMode.Open, FileAccess.Read); //将图片以文件流的形式进行保存
BinaryReader br = new BinaryReader(fs);
byte[] imgBytesIn = br.ReadBytes((int)fs.Length);//将流读入到字节数组中
string strConn = "Data Source=LAPTOP-KF9NN681;Initial Catalog=宿舍管理;Integrated Security=True";
SqlConnection conn = new SqlConnection(strConn);
conn.Open();
StringBuilder strSql = new StringBuilder();
strSql.Append("update T_Film Set F_FPhoto=@Photo where F_FId='" + FilmID+"'");
SqlCommand cmd = new SqlCommand(strSql.ToString(), conn);
cmd.Parameters.Add("@Photo",SqlDbType.Binary).Value = imgBytesIn;
cmd.ExecuteNonQuery();
conn.Close();
}
private void button1_Click(object sender, EventArgs e)
{
为何超长了
将cmd.Parameters.Add("@Photo",SqlDbType.Binary).Value = imgBytesIn;改为 cmd.Parameters.Add("@Photo", SqlDbType.Binary, imgBytesIn.Length);
cmd.Parameters["@Photo"].Value = byData;并把F_FPhoto字段长度改为 4418以上