我有一个.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];