C#csv文件到datagridview1和sql

时间:2013-01-30 12:39:01

标签: c# sql datagridview streamreader

我有一个.csv文件,可以将其插入datagridview1来预览数据。 gridview中的数据是我想使用system.data.oledb;在C#中发送到我的数据库的数据。

我知道信息来自rvalues [0]直到我文件中的rvalues [10](11列) 我使用console.writeline,可以看到数据。但现在我想将数据插入到我的sql表中。我使用命令insert into(title)Values(rvalues [0])但我从来没有收到错误,表仍然是空的。我放置了用于在while循环中插入数据的代码。

我觉得很奇怪,我可以通过console.writeline查看数据,但它不会进入我的表格。有人知道一个简单的解决方案?它不好吗?

openFileDialog1.Filter = "CSV file (*.csv)|*.CSV";
            if (openFileDialog1.ShowDialog() == DialogResult.OK)
            {
                try
                {
                    csvBestand = Convert.ToString(openFileDialog1.FileName);
                }
                catch
                {
                    MessageBox.Show("Not a valid csv file!", "Warning!", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
            }
            StreamReader sr = new StreamReader(@csvBestand);
            DataSet ds = new DataSet();
            ds.Tables.Add("emp");
            string colheader = sr.ReadLine();
            string[] cols = System.Text.RegularExpressions.Regex.Split(colheader, ";");
            for (int c = 0; c < cols.Length; c++)
            {
                ds.Tables[0].Columns.Add(cols[c]);
            }
            string row = sr.ReadLine();
            while (row != null)
            {
                string[] rvalues = System.Text.RegularExpressions.Regex.Split(row, ";");
                ds.Tables[0].Rows.Add(rvalues);
                row = sr.ReadLine();
                string connectionString =
                @"Provider=Microsoft.SQLSERVER.CE.OLEDB.4.0;" +
                @"Data Source=|DataDirectory|\csvtest.sdf";
                OleDbConnection connection = new OleDbConnection(connectionString);
                OleDbCommand insertCommand = new OleDbCommand();
                OleDbDataAdapter adapter = new OleDbDataAdapter();
                connection.Open();
                string command = "INSERT INTO GAME1" +
                "(game_titel) " +
                "VALUES ('" + rvalues[0] + "')";
                // put the command in the adapter
                insertCommand.Connection = connection;
                insertCommand.CommandText = command;
                adapter.InsertCommand = insertCommand;
                // do the insert
                adapter.InsertCommand.ExecuteNonQuery();
                connection.Close();
            }
            dataGridView1.DataSource = ds.Tables[0];

0 个答案:

没有答案