![](/img/trans.png)
[英]Cannot insert the data into the table using C# visual studio 2008
[英]Cannot INSERT into SQLite table using C#
我的点击按钮如下所示:
private void button1_Click(object sender, EventArgs e)
{
ticket.Details td = new ticket.Details();
td.@ref = txtRef.Text;
td.subject = txtSubject.Text;
td.contact_name = txtContact_Name.Text;
td.company_name = txtCompany_Name.Text;
td.description = rtDescription.Text;
td.business_impact = rtBusiness_Impact.Text;
td.severity = txtSeverity.Text;
var ticket = new ticket();
ticket.AddTicket(td);
}
AddTicket
看起来像这样:
public int AddTicket(Details details)
{
const string query = "INSERT INTO support(ref, subject, contact_name, company_name, description, business_impact, severity) VALUES (@ref, @subject, @contact_name, @company_name, @description, @business_impact, @severity)";
//here we are setting the parameter values that will be actually
//replaced in the query in Execute method
var args = new Dictionary<string, object>
{
{"@ref", details.@ref},
{"@subject", details.subject},
{"@contact_name", details.contact_name},
{"@company_name", details.company_name},
{"@description", details.description},
{"@business_impact", details.business_impact},
{"@severity", details.severity}
};
return ExecuteWrite(query, args);
}
当我看:
return ExecuteWrite(query, args);
我可以看到该查询是:
INSERT INTO support(ref, subject, contact_name, company_name, description, business_impact, severity)
VALUES (@ref, @subject, @contact_name, @company_name, @description, @business_impact, @severity)
和 args 是7
我的ExecuteWrite
看起来像这样:
private int ExecuteWrite(string query, Dictionary<string, object> args)
{
int numberOfRowsAffected;
// setup the connection to the database
using (var con = new SQLiteConnection("Data Source=main.db"))
{
con.Open();
// open a new command
using (var cmd = new SQLiteCommand(query, con))
{
// set the arguments given in the query
foreach (var pair in args)
{
cmd.Parameters.AddWithValue(pair.Key, pair.Value);
}
cmd.Prepare();
// execute the query and get the number of row affected
numberOfRowsAffected = cmd.ExecuteNonQuery();
}
return numberOfRowsAffected;
}
}
一切看起来都不错,我的numberOfRowsAffected
显示 1 行,我的 args 是 7,这是正确的。
我没有收到任何错误,但我只是在main.db
SQLite 数据库文件中没有看到任何受影响的数据。
我究竟做错了什么?
main.db
实际上位于\\bin\\Debug
,因此它工作正常! 请记住,如果您使用 DB Browser for SQL Lite 读取数据库,请确保加载正确的数据库!
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.