[英]exporting dataset to sqlite3 database using c# application errors sqlexception unhandled
我對sqlite和c#非常陌生,並嘗試使用數據集將csv文件導出到sqlite數據庫。 但我得到這個錯誤。
SQL logic error or missing database
no such column: P17JAW
碼:
string strFileName = "I:/exploretest.csv";
OleDbConnection conn = new OleDbConnection("Provider=Microsoft.Jet.OleDb.4.0; Data Source = " + System.IO.Path.GetDirectoryName(strFileName) + "; Extended Properties = \"Text;HDR=YES;FMT=Delimited\"");
conn.Open();
OleDbDataAdapter adapter = new OleDbDataAdapter("SELECT * FROM " + System.IO.Path.GetFileName(strFileName), conn);
DataSet ds = new DataSet("Temp");
adapter.Fill(ds);
DataTable tb = ds.Tables[0];
SQLiteConnection m_dbConnection;
m_dbConnection = new SQLiteConnection("Data Source= C:/Users/WebMobility.db; Version=3;");
m_dbConnection.Open();
var dt = ds.Tables[0];
foreach (DataRow dr in dt.Rows)
{
var Id = dr["Id"].ToString();
var VRM = dr["VehicleRegistration"].ToString();
var Points = Convert.ToInt32(dr["TicketScore"].ToString());
string sql = "insert into NaughtyList (Id,VRM,Points) values ( '" + Id + "'," + VRM + "," + Points + ")";
SQLiteCommand command = new SQLiteCommand(sql, m_dbConnection);
command.ExecuteNonQuery();
}
m_dbConnection.Close();
}
CSV文件包含
Id,VehicleRegistration,TicketScore
21,P17JAW,1
22,K1WOM,1
23,m4npr,4
25,G7EPS,4
您的問題是VRM
缺少單引號,您的查詢應類似於:
string sql = @"insert into NaughtyList (Id,VRM,Points) values
( '" + Id + "','" + VRM + "'," + Points + ")";
//^^ ^^
從值看來ID
是整數類型,可以刪除ID
周圍的單引號。
您應該對查詢進行參數設置,以免出現這些錯誤。 我不確定SQLiteCommand
是否支持參數(如果可以),您可以執行以下操作:
string sql = @"insert into NaughtyList (Id,VRM,Points) values
(@Id,@VRM,@Points)";
接着
command.Parameters.AddWithValue("@id", Id);
command.Parameters.AddWithValue("@VRM", VRM);
command.Parameters.AddWithValue("@Points", Points);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.