哎,累死了 加班加到八点半才解决问题

问题1:将截断字符串或二进制数据。 语句已终止。 sp_creatediagram过程试图返回状态 NULL,这是不允许的。将返回状态 0。 (.Net SqlClient Data Provider)  

原因:数据库中字符串长度短了

解决方案:nvarchar(500) 定义大一点

问题2:System.NullReferenceException: 未将对象引用设置到对象的实例

原因:空指针

错误的源代码:

//上边这样定义
string [] szds=new string[10];//存储所在地市信息
string [] szdshj = new string[10];//存储所在地市合计行字符串
double [] zjjhhj = new double[zjjh.Length];//资金计划合计
double [] jsgmhj = new double[jsgm.Length];//建设规模合计
double [] ztzzjjhhj = new double[ztzzjjh.Length];//总投资资金计划合计
double [] ljzjjhhj = new double[ljzjjh.Length];//累计资金计划合计
//底下使用出错 {
if (ds.Tables["B_JIHUA_XIANGMU"].Rows[j][5].ToString() == szds[i].ToString())
{
if (jsgm.Length > 0)
{
int index = 0;
foreach (string id in jsgm.Substring(0, jsgm.Length - 1).Split(','))
{
jsgmhj[index]
= double.Parse(ds.Tables["B_JIHUA_JSGM"].Select("f_nb_xmbm = " + ds.Tables["B_JIHUA_XIANGMU"].Rows[j]["F_NB_XMBM"])[0][int.Parse(id)].ToString()) + jsgmhj[index];
index
++;
}

}

正确写

if (szds[i] != null)
{
if (ds.Tables["B_JIHUA_XIANGMU"].Rows[j][5].ToString() == szds[i].ToString())
{
if (jsgm.Length > 0)
{
int index = 0;
foreach (string id in jsgm.Substring(0, jsgm.Length - 1).Split(','))
{
jsgmhj[index]
= double.Parse(ds.Tables["B_JIHUA_JSGM"].Select("f_nb_xmbm = " + ds.Tables["B_JIHUA_XIANGMU"].Rows[j]["F_NB_XMBM"])[0][int.Parse(id)].ToString()) + jsgmhj[index];
index
++;
}

}
}

因为必须szds定为十个

只能在底下判断了 赋值的时候可能是1,5,10等 为nul不能tostring()的

原文地址:https://www.cnblogs.com/0banana0/p/2028661.html