| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 5186 人关注过本帖
标题:[讨论]将截断字符串或二进制数据 语句已终止
取消只看楼主 加入收藏
huanying205
Rank: 1
等 级:新手上路
帖 子:107
专家分:0
注 册:2007-6-14
收藏
 问题点数:0 回复次数:11 
[讨论]将截断字符串或二进制数据 语句已终止

大家遇到过这个问题吗?我查了一下,说是要保存的字符串长度超出定义的长度,但我看我保存的字符串本来就很短,而且也定义到最大了,怎么还是这个问题?怎么回事?

搜索更多相关主题的帖子: 二进制 语句 字符 数据 截断 
2007-09-21 11:26
huanying205
Rank: 1
等 级:新手上路
帖 子:107
专家分:0
注 册:2007-6-14
收藏
得分:0 

FileStream fs = File.OpenRead(fullname);
byte[] content = new byte[fs.Length];
string temp = System.Text.Encoding.Default.GetString(content);
fs.Read(content, 0, content.Length);
fs.Close();

string connStr = "workstation id=localhost;Integrated Security=SSPI;database=djBook";
string insertCmd =
"Insert Into 图库(编号,名称,图片)Values(@编号,@名称,@图片)";

SqlConnection conn = new SqlConnection(connStr);
conn.Open();
SqlCommand cmd = new SqlCommand(insertCmd, conn);
cmd.Parameters.Add("@编号", SqlDbType.VarChar);
cmd.Parameters.Add("@名称", SqlDbType.VarChar);
cmd.Parameters.Add("@图片", SqlDbType.VarChar);
cmd.Parameters["@编号"].Value = strToolNum;
cmd.Parameters["@名称"].Value = strToolName;
cmd.Parameters["@图片"].Value = temp;
cmd.ExecuteNonQuery();
MessageBox.Show("图片成功保存!");

2007-09-21 12:48
huanying205
Rank: 1
等 级:新手上路
帖 子:107
专家分:0
注 册:2007-6-14
收藏
得分:0 
cmd.ExecuteNonQuery();
问题出在这句,但是应该是上边语句的问题。换位置不行。
另外编号的具体长度在数据表中已经给了。
2007-09-21 14:54
huanying205
Rank: 1
等 级:新手上路
帖 子:107
专家分:0
注 册:2007-6-14
收藏
得分:0 
对,数据表中图片的数据类型是varchar,应该怎么改呢?
2007-09-21 15:26
huanying205
Rank: 1
等 级:新手上路
帖 子:107
专家分:0
注 册:2007-6-14
收藏
得分:0 
如果图片的类型是image出现的异常是: 将参数值从Byte[]转换成String失败;
是varchar类型 长度我已经设到了1000,够大了吧,还是不行,语句已终止!
2007-09-21 15:41
huanying205
Rank: 1
等 级:新手上路
帖 子:107
专家分:0
注 册:2007-6-14
收藏
得分:0 
已经成功了
2007-09-21 17:06
huanying205
Rank: 1
等 级:新手上路
帖 子:107
专家分:0
注 册:2007-6-14
收藏
得分:0 
谢谢各位了!!!
2007-09-21 17:07
huanying205
Rank: 1
等 级:新手上路
帖 子:107
专家分:0
注 册:2007-6-14
收藏
得分:0 
周末没来,实在不好意思。
就是按你们说的图片的数据类型是image 就不会出现那样的提示了。就成功了,原因就是 数据类型必须一致吧
2007-09-24 17:11
huanying205
Rank: 1
等 级:新手上路
帖 子:107
专家分:0
注 册:2007-6-14
收藏
得分:0 

FileStream fs = File.OpenRead(fullname);
byte[] content = new byte[fs.Length];
fs.Read(content, 0, content.Length);
fs.Close();

string connStr = "workstation id=localhost;Integrated Security=SSPI;database=djBook";
string insertCmd =
"Insert Into 图库(编号,名称,图片)Values(@编号,@名称,@图片)";

SqlConnection conn = new SqlConnection(connStr);
conn.Open();
SqlCommand cmd = new SqlCommand(insertCmd, conn);
cmd.Parameters.Add("@编号", SqlDbType.VarChar);
cmd.Parameters.Add("@名称", SqlDbType.VarChar);
cmd.Parameters.Add("@图片", SqlDbType.VarChar);
cmd.Parameters["@编号"].Value = strToolNum;
cmd.Parameters["@名称"].Value = strToolName;
cmd.Parameters["@图片"].Value = content;
cmd.ExecuteNonQuery();
MessageBox.Show("图片成功保存!");
数据库中图片的类型是image 就行了

2007-09-24 18:17
huanying205
Rank: 1
等 级:新手上路
帖 子:107
专家分:0
注 册:2007-6-14
收藏
得分:0 
出现新问题是:图片类型是image,如果不在DataGridView控件上显示,就可以成功地保存到数据表里,但是图片添加到DataGridView控件上显示后,就保存不到数据表里了,怎么回事呢?
2007-09-24 19:31
快速回复:[讨论]将截断字符串或二进制数据 语句已终止
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.039292 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved