哎,累死了 加班加到八点半才解决问题
问题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()的