注册 登录
编程论坛 ASP.NET技术论坛

[求助]将截断字符串或二进制数据。语句已终止。

BINLEE 发布于 2007-09-07 13:13, 1847 次点击

private void Page_Load(object sender, System.EventArgs e)
{
string connStr="server=NicholasLee;uid=sa;pwd=sa;database=myWebDB";
SqlConnection myConnection = new SqlConnection(connStr);

string queryStr="select * from information";
SqlDataAdapter myDataAdapter = new SqlDataAdapter(queryStr,myConnection);

DataSet myDataSet = new DataSet();
myDataAdapter.Fill(myDataSet,"information");

//清除上一次插入的记录
Cleanup();

//在数据集插入一条新记录
SqlCommandBuilder mySqlCommandBuilder=new SqlCommandBuilder(myDataAdapter);
//使用CommandBuilder自动生成SQL语句
DataRow myDataRow = myDataSet.Tables["information"].NewRow();
myDataRow["title"]="新title";
myDataRow["author"]="新author";
myDataRow["content"]="新content";
myDataRow["datetime"]=System.DateTime.Now;
myDataSet.Tables["information"].Rows.Add(myDataRow);

myDataAdapter.Update(myDataSet,"information");
Response.Write("已经完成更新");
}
//添加自定义函数Cleanup()
private void Cleanup()
{
string connStr="server=NicholasLee;uid=sa;pwd=sa;database=myWebDB";
SqlConnection myConnection=new SqlConnection(connStr);
myConnection.Open();
string delStr="DELETE FROM information WHERE title='新title'";
SqlCommand myCommand = new SqlCommand(delStr,myConnection);
myCommand.ExecuteNonQuery();
myConnection.Close();

}



错误提示是:
源错误:


行 42: myDataSet.Tables["information"].Rows.Add(myDataRow);
行 43:
行 44: myDataAdapter.Update(myDataSet,"information");
行 45: Response.Write("已经完成更新");
行 46: }

请大虾们告诉我怎么解决该问题.

4 回复
#2
bygg2007-09-07 13:31
在外面加个try..catch..详细的错误信息就出来了
#3
licaiks2007-09-07 13:56

问题很明显,sql语句有问题!要么就是你输入的数据大于数据库你输入字段的长度!
我经常会出现这个错误!结果原因基本上都是这个.
解决方法是将你输入的数据做个限制就可以了.

#4
bygg2007-09-07 14:00
myDataRow["datetime"]=System.DateTime.Now;后面加上myDataSet.Tables["information"].Rows.Add(myDataRow);试试

LZ是 这样赋的值,我想"数据大于数据库你输入字段的长度!"这种错误不太可能
myDataRow["title"]="新title";
myDataRow["author"]="新author";
myDataRow["content"]="新content";
myDataRow["datetime"]=System.DateTime.Now;

#5
BINLEE2007-09-07 14:11

谢谢bygg斑竹..问题解决了
这个论坛挺不错的 我今天才发现以后一定经常来```

1