日期:2014-05-16  浏览次数:21045 次

关于文本文件为空值判断?
数组第15列,在SQL表里数据类型是 "decimal" ,因为有时候会为空值,就导入不了SQL表里了,能不能加个判断呀,或者有其它方法,请帮助? 


文本内容如下:
10|214|P|||||20140111|20140120|||6140|000013|001|||||11.7948|0|0|20140117|N||||        


C#代码:
StreamReader sr = new StreamReader("d:/pps.txt", Encoding.Default);
                    string line;
                    string[] strs;
            
                    while (sr.Peek() > -1)
                    {
                        line = sr.ReadLine().Replace(" ", "");

                        strs = line.Split(new char[] { '|' });
                           

                   
                        dt.Rows.Add(new object[] {strs[0],strs[1],strs[2],strs[3],strs[4],strs[5],strs[6], 
                    strs[7],strs[8],strs[9],strs[10],strs[11],strs[12], strs[13], strs[14],strs[15],strs[16],strs[17],
                    strs[18],strs[19],strs[20],strs[21],strs[22],strs[23],strs[24],strs[25],strs[26]});

                      

                    }
------解决方案--------------------
引用:
怎么判断strs[15]为空值?

if(strs[15].Length == 0)
{
      //这个时候strs[15]=“”,就是空字符串,插入到数据类型为decimal 的列中是不行的,因为decimal是数字类型的,只能插入数字
    strs[15] =“0”;
}

------解决方案--------------------
引用:
如果某条记当录少于26组时,那一条记录能不能不读取,反回一个值,然后继续读取下一条?


if(strs.Length<26)
{
      //可以处理了
}
else
{
       for(int i=0;i<strs.Length; i++)
     {
            if(strs[i].Length == 0)
                   strs[i] =  "0";
     }