C# 在c中的MS Access表中查找值#
我正试图帮助一位朋友完成他的一个项目,但这需要一些MS Access的使用,我对此并不熟悉。目前的任务如下: 我们有一张由3行组成的桌子。第一行是日期格式。第二列和第三列是/否列。我试图返回给定日期第二行的值。我已经编写了下面的代码来实现这一点C# 在c中的MS Access表中查找值#,c#,ms-access,C#,Ms Access,我正试图帮助一位朋友完成他的一个项目,但这需要一些MS Access的使用,我对此并不熟悉。目前的任务如下: 我们有一张由3行组成的桌子。第一行是日期格式。第二列和第三列是/否列。我试图返回给定日期第二行的值。我已经编写了下面的代码来实现这一点 string QueryDate= monthCalendar1.SelectionRange.Start.ToString(); QueryDate= QueryDate.Substring(0, 10);
string QueryDate= monthCalendar1.SelectionRange.Start.ToString();
QueryDate= QueryDate.Substring(0, 10);
OleDbConnection conn = new
OleDbConnection("Provider=Microsoft.Jet.Oledb.4.0;DataSource=data.mdb");
if (conn.State != ConnectionState.Open) conn.Open();
string query = "Select Rezerve from 101 Where Tarih=\"QueryDate\"";
OleDbDataAdapter adtr = new OleDbDataAdapter(query, conn);
DataTable dt = new DataTable();
adtr.Fill(dt);
然而,它很难完成手头的任务。我找到了一些代码模板,用于在可视化界面中显示相应的值。但是,我找不到方法将第二行“Rezerve”的值返回给变量,以便以后使用。我该怎么做?顺便说一下,有三种情况;首先,可能没有给定日期的记录。第二,第二行可能是“是”,第三行当然可能是“否”。我必须为每种情况调用不同的函数
提前谢谢。这只是一个粗略的想法,你可以做什么,我以前做过
string QueryDate = monthCalendar1.SelectionRange.Start.ToString();
QueryDate = QueryDate.Substring(0, 10);
string connstr = "Provider=Microsoft.Jet.Oledb.4.0;DataSource=data.mdb";
string query = "Select Rezerve from 101 Where Tarih=@QueryDate";
using (OleDbConnection dc = new OleDbConnection(connstr))
{
OleDbCommand sqlcmd = new OleDbCommand(query, conn);
sqlcmd.Parameters.AddWithValue("@QueryDate", QueryDate);
bool Rezerve = (bool)sqlcmd.ExecuteScalar();
}
switch (Rezerve)
{
Case true:
//true stuff
break;
Case false:
//false stuff
Break;
Default:
//No Return
Break;
}
我明白了,这就是将数据保存到变量中的方法。如果给定日期没有条目怎么办?我得为那个案子再做一次手术。如何检查此项?您将从ExecuteScalar()收到一个空返回。然后,您可以将if更改为开关,并使用默认值执行第三种情况
code
switch(Rezerve){Case-true://true-stuff-break;Case-false://false-stuff-break;Default://No-Return-break;}code
我编辑了答案,因为上面的评论不合作