Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/337.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ms-access/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在c中的MS Access表中查找值#_C#_Ms Access - Fatal编程技术网

C# 在c中的MS Access表中查找值#

C# 在c中的MS Access表中查找值#,c#,ms-access,C#,Ms Access,我正试图帮助一位朋友完成他的一个项目,但这需要一些MS Access的使用,我对此并不熟悉。目前的任务如下: 我们有一张由3行组成的桌子。第一行是日期格式。第二列和第三列是/否列。我试图返回给定日期第二行的值。我已经编写了下面的代码来实现这一点 string QueryDate= monthCalendar1.SelectionRange.Start.ToString(); QueryDate= QueryDate.Substring(0, 10);

我正试图帮助一位朋友完成他的一个项目,但这需要一些MS Access的使用,我对此并不熟悉。目前的任务如下:

我们有一张由3行组成的桌子。第一行是日期格式。第二列和第三列是/否列。我试图返回给定日期第二行的值。我已经编写了下面的代码来实现这一点

       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
我编辑了答案,因为上面的评论不合作