我正在使用SQLite作为后端的.net win表单项目。我想创建一些用于我的项目的存储过程。这些SP通常会接受一些参数,在查询数据库之后返回一些值等。但SQLite不支持存储过程。我的问题是有没有替代sp或者如何运行多个查询获取一些输入并使用c#给出一些输出...请在这方面提出建议。谢谢提前。
答案 0 :(得分:1)
SQLite没有存储过程或任何相同的东西。也许我不明白这个问题,但您可以根据用户输入构建查询字符串。像这个例子那样使用复选框来构建SQL查询,并分别返回结果:
ArrayList fields = new ArrayList();
fields.Add("id");
if (CDomain.Checked) { fields.Add(", domain"); }
if (CCPU.Checked) { fields.Add(", cpu_speed"); }
if (CIP.Checked) { fields.Add(", pc_ip"); }
if (CLastUser.Checked) { fields.Add(", last_user"); }
if (CLoginDate.Checked) { fields.Add(", last_logon"); }
if (CUsers.Checked) { fields.Add(", users"); }
if (CMonitors.Checked) { fields.Add(", monitors"); }
if (CPrinters.Checked) { fields.Add(", printers"); }
if (CPCName.Checked) { fields.Add(", pc_name"); }
if (COS.Checked) { fields.Add(", os"); }
if (CBit.Checked) { fields.Add(", bitversion"); }
if (CPrograms.Checked) { fields.Add(", programs"); }
if (CLicense.Checked) { fields.Add(", license_key"); }
if (CCPU.Checked) { fields.Add(", cpu_speed"); }
if (CRAM.Checked) { fields.Add(", ram"); }
if (CAdapter.Checked) { fields.Add(", adapter_speed"); }
if (CHardDrives.Checked){ fields.Add(", drives"); }
dataBase db = new dataBase();
try
{
ArrayList v = db.queryDB(query, fields);
if (v.ToArray().Length == 0)
{
MessageBox.Show("No results.");
}
}
catch (Exception er) { MessageBox.Show("Somethign went wrong in the search function. " + er.ToString()); }
ReportViewer report = new ReportViewer();
report.Show();
this.Close();
这听起来像你可能正在寻找的东西,似乎你想要一个动态SQL语句而不是存储过程。