今天遇到了一个麻烦,以期的程序老是报错仔细检查原来是错在了一个执行字符串的存储过程的字符串上,可检查了N遍字符串一点毛病没有。又是跟踪又是断点最后终于弄明白了原来是在存储过程里声明字符串的长度不够导致字符串的一部分被截掉了。所以说在执行字符串的存储过程中字符串的长度一定要足够长要不就很麻烦了,呵呵
这里是原来的存储过程
我的程序中字符串的声明过程如下:
private string GetFilterString()
{
string str = " CheckID > 0 ";
if (MothPicker1.SelectedIndex > 0)
{
string strDate = MothPicker1.Date.ToString("yyyy-MM");
str += "and convert(varchar(20),dbo.T_DangerSource_Check.InDate,120) like '%%" + strDate + "%%' ";
}
if (ddlType.SelectedIndex > 0)
{
str += " and dbo.T_DangerSource_File.TypeID = " + ddlType.SelectedValue + " ";
}
if (txtSourceName.Text.Trim() != "" && !string.IsNullOrEmpty(txtSourceName.Text.Trim()))
{
str += " and dbo.T_DangerSource_File.SourceName like'%%" + txtSourceName.Text.Trim() + "%%' ";
}
str += "and dbo.T_DangerSource_File.DeptID = '" + deptID + "'";
return str;
}