C# 插入查询将空白记录插入数据库
我目前正试图使用一个单独的类来处理我的所有SQLite查询。下面的代码运行时没有任何错误,并在数据库中创建新行,但字段为空。当第一个消息框显示字符串文本时,第二个消息框显示命令文本时,值字符串为空。有人能指出我做错了什么吗 提前谢谢C# 插入查询将空白记录插入数据库,c#,sqlite,C#,Sqlite,我目前正试图使用一个单独的类来处理我的所有SQLite查询。下面的代码运行时没有任何错误,并在数据库中创建新行,但字段为空。当第一个消息框显示字符串文本时,第二个消息框显示命令文本时,值字符串为空。有人能指出我做错了什么吗 提前谢谢 public partial class v : Form { DB db = new DB(); public v() { InitializeComponent(); } private void bt
public partial class v : Form
{
DB db = new DB();
public v()
{
InitializeComponent();
}
private void btnInsert_Click(object sender, EventArgs e)
{
db.journal = tbJournal.Text;
db.selected = tbSelected.Text;
db.job = tbJob.Text;
db.note = tbNote.Text;
db.insertToUser();
}
}
public class DB
{
static private string Journal, Selected, Job, Note, Date;
public string journal { get { return Journal; } set { Journal = value; } }
public string selected { get { return Selected; } set { Selected = value; } }
public string job { get { return Job; } set { Job = value; } }
public string note { get { return Note; } set { Note = value; } }
public string date { get { return Date; } set { Date = value; } }
static private SQLiteConnection Con = new SQLiteConnection("Data Source = garden.db; version =3;");
private SQLiteCommand cmdINSERT = new SQLiteCommand("INSERT INTO User(Journal, Selected, Jobs, Notes, Date) VALUES('" + Journal + "','" + Selected + "','" + Job + "','" + Note + "','" + Date +"')",Con);
public void insertToUser()
{
MessageBox.Show(Journal + " " + Selected + " " + Job + " " + Note);
Con.Open();
MessageBox.Show(cmdINSERT.CommandText);
try { cmdINSERT.ExecuteNonQuery(); }
catch (Exception ex) { MessageBox.Show(ex.ToString()); }
Con.Close();
}
}
您正在初始化
cmdINSERT
inline,因此在构建DB
对象(newdb()
)时,它正在使用属性值构建命令文本。此时,所有属性都为空。只需将cmdINSERT
移动到insertToUser
方法中
旁注
SQLiteConnection
类型实现了IDisposable
接口。现在您正在实例化该对象,但没有关闭连接。要解决此问题,请将其移动到insertToUser
中,并使用块将其包装在中:
使用(SQLiteConnection conn=newsqliteconnection(…)
{
//创建命令对象
//执行查询
}
这样就可以正确地关闭和处理连接。您可以在此处找到有关IDisposable
和使用块的更多信息:非常类似,它可以成为只读属性而不是字段。e、 g.private SQLiteCommand cmdINSERT=>…