簡體   English   中英

mysql命令executescalar在C#中返回null

[英]mysql command executescalar returns null in C#

假設我有一個如下所示的查詢結果:

ID    NAME    Phone
----  ----    -----
1     John    123456
2     John    125678
3     John    345678
4     Abby    456789
5     Abby    567890

我只想返回 name 的單行實例:John,其中電話號碼類似於“12%”。

在 C# 中,我編寫了這個語法來獲取 PersonName 變量作為查詢的結果。

MySqlConnection connection = new MySqlConnection("SERVER=" + "localhost" + ";" + "DATABASE=" + "testdb" + ";" + "UID=" + "root" + ";" + "PASSWORD=" + "" + ";");
MySqlCommand command = new MySqlCommand();    

    connection.Open();
    string selectQuery = "SELECT NAME FROM testtable WHERE Phone LIKE '12%' ORDER BY ID LIMIT 1";
    command.Connection = connection;
    command.CommandText = selectQuery;
    string PersonName = (string)command.ExecuteScalar();
    connection.Close();

我不知道我的代碼有什么問題,但 PersonName 返回 null。 我做錯了什么?

我們必須在這里遺漏其他東西。 根據您提供的內容嘗試以下代碼示例:

try {
MySqlConnection connection = new MySqlConnection("SERVER=localhost;DATABASE=testdb;UID=root;PASSWORD=;");
MySqlCommand command = new MySqlCommand();    

connection.Open();
string selectQuery = "SELECT NAME FROM testtable WHERE Phone LIKE '12%' ORDER BY ID LIMIT 1";
command.Connection = connection;
command.CommandText = selectQuery;
string PersonName = (string)command.ExecuteScalar();
}
catch (Exception ex) {
MessageBox.Show(ex.Message);
}
finally {
    connection.Close();
}

我有一種感覺,由於某種原因,對 .Open() 的調用失敗了,錯誤正在其他地方被吞下。 試試上面的方法,讓我知道你發現了什么。

這樣做:改變這個(string)command.ExecuteScalar(); 通過Convert.ToString(command.ExecuteScalar());

MySqlConnection connection = new MySqlConnection("SERVER=" + "localhost" + ";" + "DATABASE=" + "testdb" + ";" + "UID=" + "root" + ";" + "PASSWORD=" + "" + ";");

MySqlCommand 命令 = new MySqlCommand();

connection.Open();
string selectQuery = "SELECT NAME FROM testtable WHERE Phone LIKE '12%' ORDER BY ID LIMIT 1";
command.Connection = connection;
command.CommandText = selectQuery;
string PersonName = Convert.ToString(command.ExecuteScalar());
connection.Close();

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM