从csv文件更新数据库列。 Csv文件可能包含可变数量的列

时间:2016-12-21 06:01:07

标签: c# sql sql-server csv

需要你的帮助。我必须从用户获取csv文件并根据该文件更新数据库列。 例如: 文件包含以下字段:


名称|说明|日期

另一个档案有:
名称|价格
请指导我如何使用sql 2008在c#中执行此操作。

enter image description here

从复选框中,用户可以选择要更新的列。

else if (count == 4 && dataGridView1.ColumnCount - 1 == 4)
            {


                for (int i = 0; i < dataGridView1.RowCount - 1; i++)
                {
                    int id = Convert.ToInt32(dataGridView1.Rows[i].Cells["Id"].Value);
                    ItemsC.UpdateDatacolumns(id, columnsList[1], dataGridView1.Rows[i].Cells[1].Value.ToString(), columnsList[2], dataGridView1.Rows[i].Cells[2].Value.ToString(), columnsList[3], dataGridView1.Rows[i].Cells[3].Value.ToString());

                }
            }
          else if (count == 5 && dataGridView1.ColumnCount - 1 == 5)
            {


                for (int i = 0; i < dataGridView1.RowCount - 1; i++)
                {
                    int id = Convert.ToInt32(dataGridView1.Rows[i].Cells["Id"].Value);
                    ItemsC.UpdateDatacolumns(id, columnsList[1], dataGridView1.Rows[i].Cells[1].Value.ToString(), columnsList[2], dataGridView1.Rows[i].Cells[2].Value.ToString(), columnsList[3], dataGridView1.Rows[i].Cells[3].Value.ToString(), columnsList[4], dataGridView1.Rows[i].Cells[4].Value.ToString());

                }
            }

在后端只是覆盖更新方法:

    public static bool UpdateDatacolumns(int id, string column, string value, string column2, string value2)
    {
        SqlConnection conn = database.getConnection();
        string query = "update destinationItemTable set " + column + "= @value ," + column2+" =@value2 where Id=@id";
        try
        {
            var p1 = new SqlParameter("@id", id);
            var p2 = new SqlParameter("@value", value);
            var p3 = new SqlParameter("@value2", value2);
            var cmd = new SqlCommand { CommandText = query, CommandType = CommandType.Text };
            cmd.Parameters.Add(p1);
            cmd.Parameters.Add(p2);
            cmd.Parameters.Add(p3);
            cmd.Connection = conn;
            conn.Open();
            bool result = (cmd.ExecuteNonQuery() > 0);
            cmd.Dispose();
            return result;
        }
        catch (Exception ex)
        {

        }
        finally
        {
            conn.Close();

        }
    }

0 个答案:

没有答案