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条回答 默认 最新

    报告相同问题?

    悬赏问题

    • ¥50 易语言把MYSQL数据库中的数据添加至组合框
    • ¥20 求数据集和代码#有偿答复
    • ¥15 关于下拉菜单选项关联的问题
    • ¥20 java-OJ-健康体检
    • ¥15 rs485的上拉下拉,不会对a-b<-200mv有影响吗,就是接受时,对判断逻辑0有影响吗
    • ¥15 使用phpstudy在云服务器上搭建个人网站
    • ¥15 应该如何判断含间隙的曲柄摇杆机构,轴与轴承是否发生了碰撞?
    • ¥15 vue3+express部署到nginx
    • ¥20 搭建pt1000三线制高精度测温电路
    • ¥15 使用Jdk8自带的算法,和Jdk11自带的加密结果会一样吗,不一样的话有什么解决方案,Jdk不能升级的情况