insert数据出错,大家HEPL~谢谢先

yuanqi007 2005-06-19 02:14:03
偶有以下一段代码
public void CommitTestData(string id,string key) //提交答案
{
string command = "insert 上机考试表(学生ID,试题ID,学生答案) values(@Id,@Textid,@Key)";
conn = new SqlConnection(conString);
sc = new SqlCommand(command,conn);
sc.Parameters.Add("@Id",id);
sc.Parameters.Add("@Textid",tid);
sc.Parameters.Add("@Key",key);
conn.Open();
sc.ExecuteNonQuery();
}
其中key是一个XML转换成的字符串。
在运行的时候,抛出异常:System.Data.SqlClient.SqlClient将截断字符串或二进制数据

如果,执行这个方法的时候,传递进去的key是"111"的时候,就能正常提交。
数据库中,学生答辩这个字段的类型是varchar(8000)。

各位帮忙找找原因啊,谢谢先
...全文
107 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
yuanqi007 2005-06-19
  • 打赏
  • 举报
回复
谢谢啊

我把Key截取了一段,能保存进去,可能是长度太长了吧,呵呵,有点不可思议。

哎,怪郁闷的,答案的字符串比试题都长……

好了,先这样吧,呵呵
老戴12345654 2005-06-19
  • 打赏
  • 举报
回复
try

SqlParameter pramKey = new SqlParameter("@Key",SqlDbType.Text,8000);
pramKey.Value = key;
sc.Parameters.Add(pramKey);
yuanqi007 2005-06-19
  • 打赏
  • 举报
回复
谢谢楼上先啊
我按照你的方法试了下
异常提示:System.Data.SqlClient.SqlClient赋予类型'varchar'的大小(8178)超过了任意数据类型的允许最大值(8000)。
必须声明变量"@key"。

我提交的KEY大于定义的长度么?

继续求助,谢谢
老戴12345654 2005-06-19
  • 打赏
  • 举报
回复
指定参数大小试试

sc.Parameters.Add("@Key",SqlDbType.VarChar,8000);
sc.Parameters["@Key"].Value = key;

110,538

社区成员

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

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

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