Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/321.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# 参数不起作用的OLEDB命令_C#_Oledbcommand - Fatal编程技术网

C# 参数不起作用的OLEDB命令

C# 参数不起作用的OLEDB命令,c#,oledbcommand,C#,Oledbcommand,我对C有点陌生,不知道我做错了什么。试图找到解决方案,但失败了。提前谢谢 当我不使用参数select*fromΚαρτέλα913;∑θεν;表单将使用来自读卡器的值进行填充。表单不带值,换句话说,select命令看起来不起作用 OleDbCommand cmd = new OleDbCommand(); cmd.CommandType = CommandType.Text; cmd.CommandText = "selec

我对C有点陌生,不知道我做错了什么。试图找到解决方案,但失败了。提前谢谢

当我不使用参数select*fromΚαρτέλα913;∑θεν;表单将使用来自读卡器的值进行填充。表单不带值,换句话说,select命令看起来不起作用

            OleDbCommand cmd = new OleDbCommand();
            cmd.CommandType = CommandType.Text;
            cmd.CommandText = "select * from Καρτέλα_Ασθενή where Κωδ_Ασθενή = @Κωδ_Ασθενή";
            cmd.Parameters.AddWithValue("@Κωδ_Ασθενή", MyGlobals.Patient_code);
            cmd.Connection = accessdb;
            accessdb.Open();

            OleDbDataReader dr = cmd.ExecuteReader();
            if (dr.Read())
            {
                while (dr.Read())
                {
                    txt_patient_code.Text = dr["Κωδ_Ασθενή"].ToString();
                    txt_Surname.Text = dr["Επώνυμο"].ToString();
                    txt_Name.Text = dr["Όνομα"].ToString();
                    txt_date.Text = Convert.ToDateTime(dr["Ημερομηνία_Γέννησης"]).ToShortDateString();
                    txt_address.Text = dr["Διεύθυνση"].ToString();
                    txt_area.Text = dr["Περιοχή"].ToString();
                    txt_phone.Text = dr["Τηλ"].ToString();
                    txt_fax.Text = dr["Φαξ"].ToString();
                    txt_insurance.Text = dr["Ασφάλεια"].ToString();
                    txt_comments.Text = dr["Παρατηρήσεις"].ToString();
                    txt_history.Text = dr["Ιστορικό"].ToString();
                    txt_alergies.Text = dr["Αλλεργίες"].ToString();
                    txt_email.Text = dr["e-mail"].ToString();
                }
            }
            dr.Close();
            accessdb.Close();

移除while循环,如下所示

if (dr.Read())
{
  txt_patient_code.Text = dr["Κωδ_Ασθενή"].ToString();
  //..... set all other text box values 

}
如果您只有一条与sql匹配的记录,那么在第一次dr.Read中,它将获取该记录。当您使用while循环时,没有可从数据库中获取的记录

而且可能有允许null值的列,在调用string方法之前,最好检查dbnull

 txt_email.Text = dr["Επώνυμο"] == DBNull.Value ? string.Empty : dr["Επώνυμο"].ToString();

移除while循环,如下所示

if (dr.Read())
{
  txt_patient_code.Text = dr["Κωδ_Ασθενή"].ToString();
  //..... set all other text box values 

}
如果您只有一条与sql匹配的记录,那么在第一次dr.Read中,它将获取该记录。当您使用while循环时,没有可从数据库中获取的记录

而且可能有允许null值的列,在调用string方法之前,最好检查dbnull

 txt_email.Text = dr["Επώνυμο"] == DBNull.Value ? string.Empty : dr["Επώνυμο"].ToString();

好的,我看到你的代码有一些问题,但我不完全理解你的问题,所以我会尽可能多地回答。 首先,正如我所写的,删除if dr.Read,因为while循环已经做到了这一点。 现在,循环内部出现了一个问题,因为这意味着如果有多个项,它们将覆盖上一个项,剩下的是最后一个项的值,因此您必须确定要对数据做什么,可能是dataGrid或其他


在您的问题中,您正在谈论您的查询,如果您不在MyGlobals.Patient\u代码中添加值,那么查询仍然有效,至少我认为这是您的意思。这可能是因为您只剩下数据库中的最后一个值或string.empty值。每次到达该行时,请检查数据库和您的值,如果您需要进一步帮助,请告诉我们有关您的问题的更多信息

好的,我看到您的代码存在一些问题,但我不完全理解您的问题,因此我将尽可能多地回答。 首先,正如我所写的,删除if dr.Read,因为while循环已经做到了这一点。 现在,循环内部出现了一个问题,因为这意味着如果有多个项,它们将覆盖上一个项,剩下的是最后一个项的值,因此您必须确定要对数据做什么,可能是dataGrid或其他


在您的问题中,您正在谈论您的查询,如果您不在MyGlobals.Patient\u代码中添加值,那么查询仍然有效,至少我认为这是您的意思。这可能是因为您只剩下数据库中的最后一个值或string.empty值。每次到达该行时,请检查数据库和您的值,如果您需要进一步帮助,请告诉我们有关您的问题的更多信息

到底什么不起作用?问题是什么?顺便说一句,你不需要if dr.Read,while循环已经做到了,到底是什么不起作用?问题是什么?顺便说一句,你不需要if dr.Read,while循环已经做到了我有空值,我会试试这个,看看会发生什么。我有空值,我会试试这个,看看会发生什么。谢谢老兄,是if Station引起了问题谢谢。谢谢老兄,是if Station引起了问题谢谢。