我有一个供用户浏览csv文本文件。

当用户获取文本文件时,必须读取第一行,并且必须将第二个元素写入Sql Table

文本文件很大,但是前两行如下所示:

students_head   201502  
student_id  code amount

我有一个带有以下列的Sql表:

student_id  code amount month

我需要做的是获取文本文件第一行中的月份,并将其填充到所有行的月份列中。

看起来像这样

student_id  code amount month
1234        mt11 1000   201502
1235        mt11 25000  201502
1236        ds33 7800   201502

我目前拥有的代码如下:

openFileDialog1.Filter = ".csv file|*.csv*";
openFileDialog1.FilterIndex = 1;

DialogResult result = openFileDialog1.ShowDialog();

if (result == DialogResult.Yes)
{
    String file = openFileDialog1.FileName;
    btnNext.Enabled = true;

    try
    {
        string connect = "Data Source=BRIAN-PC\\SQLEXPRESS; Initial Catalog=PSAHoldings; user id =sa; Password=kagiso";

        string table = "IF NOT EXISTS (SELECT * FROM sysobjects WHERE name='t_original' AND xtype='U')" +
            "CREATE TABLE t_original (" +
            "empId varChar(10) NOT NULL PRIMARY KEY," +
            "paycode varChar(10) NOT NULL," +
            "amount int NOT NULL," +
            "month int NOT NULL,"+
            ")";

        SqlConnection con = new SqlConnection(connect);
        con.Open();

        SqlCommand createTable = new SqlCommand(table, con);
        createTable.ExecuteNonQuery();


        String BulkInsert = "BULK INSERT t_original FROM_" +
            file + "_WITH (--FIRSTROW = 3," +
            "FIELDTERMINATOR = '|'," +
            "ROWTERMINATOR = '\\n')";

        SqlCommand bulkCmd = new SqlCommand(BulkInsert, con);
        bulkCmd.ExecuteNonQuery();

    }
    catch (SqlException ex)
    {
        MessageBox.Show(ex.ToString(), "Exception Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
    }
}

#1楼 票数:0

只需阅读-

string month = string.empty;
using(var reader = new StreamReader(file))
{
    string firstLine = reader.ReadLine();
    string[] splitedLine = firstLine.Split(';'); // or whatever delimiter You used
    month = splittedLine[1];
}

  ask by George translate from so

未解决问题?本站智能推荐:

2回复

C#在SQL表中存储未知数量的元素

我目前正在读取和解析10个不同的文件(.txt,.csv),每个文件具有不同的列数。 这是一个文件的示例: 该文件共有10列,将其插入到自己的表中。 如果我对10个文件这样做,我将有10个不同的if / else if语句。 对我来说,这听起来像是不好的方法。 有没有办法遍历数组并
3回复

如何使用C#将一维数组中的每个元素插入SQL数据库的新行中?

我有一个包含要插入SQL数据库的文件路径列表的数组。 我对设置和连接数据库充满信心,只是无法弄清楚如何获取每个元素并将其放置在数据库的新行中。 谢谢,马特
1回复

如何将数组添加到C#中的SQL行?

我有一个由 StringBuilder 创建的数组: 现在我想将这个“输入”数组中的数据插入到 SQL 行中? 数组中的第一个元素必须是整数。 我怎样才能以最快的方式实现这一点? 在此先感谢您的帮助或示例。 我已经从 SQL 表中读取、编辑过,并且我已经找到了 sb,我有: 现在我想保存回 SQL。
2回复

如何从数据库读取数据并将其存储到数组C#

我需要将结果推送到数组中才能显示在图表中。 我一直在获取System.Data.DataRow而不是值。 我需要知道正确的方法来存储结果(当前我将其存储在DataTable )并将其推入数组。我是c#中的新手。 谢谢..
1回复

在SQL数据库中存储C#字符串数组

从C#将我的程序正在使用的SQL数据库中存储字符串数组的最佳方法是什么? 特别: 我将为需要存储字符串数组的SQL列使用哪种数据类型? 在C#中,我需要使用什么方法来转换字符串数组以将其插入SQL数据库? 查看数据库时,字符串数组的可读性并不重要。 我只需要能够将其存储在数
7回复

C#:是否可以在SQL数据库中存储十进制数组?

我正在研究一个实验室项目的应用程序,我正在用C#编写它。 它应该从我们用来运行测试的应用程序导出的文本文件中导入结果,到目前为止,我遇到了障碍。 我已经得到程序来保存大约250个十进制值作为一维数组,但后来我试图让数组本身能够保存在SQL数据库中,以便我以后可以检索数组并使用小数用于构建点
2回复

在LINQ中拆分字符串并使用第二个索引值

我坚持拆分电子邮件以获取 LINQ 的 group by 子句中的电子邮件域,以按域对数据进行分组。 我的 LINQ 是 注意:我也尝试过注释代码,但仍然向我展示了LINQ not supported相同异常我需要拆分电子邮件并获取将位于第二个索引上的域。 我该如何解决这个问题? 编辑: 我面临转换
2回复

在C#中的Sql参数中使用数组值

我正在用C#开发局程序。 我想这样写数据库绑定SqlParameter的数组值; 那么如何仅用一条命令就可以添加多行(数组长度为多少)?