wills2009 2014-07-23 15:46 采纳率: 0%
浏览 1448

使用SqlBulkCopy时,无法将TXT中的时间字符串转换为SQL中的Datetime类型

今日在做项目中用到中转文件缓存的思路来想服务器传送数据,第一次使用SqlBulkCopy,但是遇到了问题:在将TXT文件中的数据复制到sql中时,第一列的时间总是提示格式不对,vs提示无法将第一列的字符串转换为DateTime格式,请各位高手支招,谢谢!!!连续加班十多天了,任务紧急,希望各位能给提出宝贵意见。
在每个TXT文件中的,每一行数据是这样存放的:
2014-07-22 00:14:31:296,六甲牵引变电所_1#主变低压侧B相电压,0.0831843,192
以下是我的程序,很菜,见笑:
//读取中转文件,此处的Path好像没用,随意写一个string就行,SQLConnectionString为指定的数据库连接字符串
public static void ReadFile(string Path, string SQLConnectionString)
{
using (SqlConnection conn = new SqlConnection(SQLConnectionString))
{
conn.Open();

        DirectoryInfo di = new DirectoryInfo(@"d:\中转文件");
        foreach (var fi in di.GetFiles("*.txt", SearchOption.AllDirectories))
        {
            string sLine = "";
            DataTable dt = new DataTable();
            dt.Columns.Add(new DataColumn("时间标签"));
            dt.Columns.Add(new DataColumn("遥测点名"));
            dt.Columns.Add(new DataColumn("遥测值"));
            dt.Columns.Add(new DataColumn("数据质量"));
            //建立sql连接

            using (StreamReader sr = new StreamReader(fi.FullName))
            {

                while ((sLine = sr.ReadLine()) != null)
                {
                    DataRow row = dt.NewRow(); 
                    row.ItemArray= sLine.Split(',');
                    dt.Rows.Add(row);
                }

                System.Data.SqlClient.SqlBulkCopy sbc = new  System.Data.SqlClient.SqlBulkCopy(SQLConnectionString);
                {
                    sbc.BulkCopyTimeout = 5000;
                 // sbc.BatchSize = dt.Rows.Count;

                    try
                    {
                        //复制TXT中的数据
                        sbc.DestinationTableName = "中转测试";
                        sbc.WriteToServer(dt);
                    }
                    catch (Exception ex)
                    {
                        Console.WriteLine(ex.ToString());
                    }
                }

            }

          }
         conn.Close();

      } 
           //将每个TXT文件删除
            string[] strFileName = Directory.GetFiles("D:\\中转文件", "*.txt");
            foreach (var item in strFileName)            
            {
              File.Delete(item);
              Console.WriteLine("{0}文件被删除了",item);
            }
    }
  • 写回答

0条回答

    报告相同问题?

    悬赏问题

    • ¥30 这是哪个作者做的宝宝起名网站
    • ¥60 版本过低apk如何修改可以兼容新的安卓系统
    • ¥25 由IPR导致的DRIVER_POWER_STATE_FAILURE蓝屏
    • ¥50 有数据,怎么建立模型求影响全要素生产率的因素
    • ¥50 有数据,怎么用matlab求全要素生产率
    • ¥15 TI的insta-spin例程
    • ¥15 完成下列问题完成下列问题
    • ¥15 C#算法问题, 不知道怎么处理这个数据的转换
    • ¥15 YoloV5 第三方库的版本对照问题
    • ¥15 请完成下列相关问题!