C# 使用MySql分配变量

C# 使用MySql分配变量,c#,mysql,C#,Mysql,我想通过我在MySql数据库中得到的值来分配我的变量[vPrenom\u id\u obtenus]。。。 使用以下代码,我收到一条错误消息: 不包含“ExecuteScalar”的定义 如何检索“column\u fistname\u id”中的值? 表中两列的类型 Le type de deux colonnes de ma table[column_fistname_id]和[column_FAMILYNAME]是«文本。ExecuteScalar是一种调用MySqlCommand实例而非

我想通过我在MySql数据库中得到的值来分配我的变量[vPrenom\u id\u obtenus]。。。 使用以下代码,我收到一条错误消息:

不包含“ExecuteScalar”的定义

如何检索“column\u fistname\u id”中的值? 表中两列的类型


Le type de deux colonnes de ma table[column_fistname_id]和[column_FAMILYNAME]是«文本。

ExecuteScalar是一种调用MySqlCommand实例而非MySqlConnection实例的方法

正确的做法是:

using(MySqlConnection connDataBase = new MySqlConnection(connDataBaseStr))
{
   connDataBase.Open(); 
   MySqlCommand cmd = new MySqlCommand(sqlDataBaseSelect, connDataBase);
   vFistNam_id_get = (string)cmd.ExecuteScalar(); 
}
但是,您的代码错误还有另一个原因

此sql字符串

string sqlDataBaseSelect = "SELECT column_fistname_id FROM table_identy " + 
                           "WHERE column_famillyname='" + vFamillyName + "'";
通向

你应该这样重写它

string sqlDataBaseSelect = "SELECT column_fistname_id FROM table_identy " + 
                           "WHERE column_famillyname=?family";
然后在调用ExecuteScalar之前,向命令添加一个参数

cmd.Parameters.AddWithValue("?family", vFamillyName);

作为附加值,您不必担心数据类型分隔符(本例中为单引号)

您需要使用MySqlCommand来使用ExecuteScalar。您的源代码中也缺少SQL,即从某物中选择*或存储的进程名

public static int GetNumRows(String OrchardName) 
{ 
// Create Connection 
MySqlConnection con = new MySqlConnection(_connectionString); 

// Create Command 
MySqlCommand cmd = new MySqlCommand(); 
cmd.Connection = con; 
cmd.CommandText = "SELECT COUNT(*) FROM orchards WHERE OrchardName = @OrchardName";
 cmd.Parameters.Add("@OrchardName", OrchardName); 


// Return Count 
con.Open(); 
Int32 NumRows = (Int32)cmd.ExecuteScalar(); 
return NumRows; 

}
例如:

MySqlConnection connDataBase = new MySqlConnection(connDataBaseStr);
connDataBase.Open();
MySqlCommand command = connection.CreateCommand();
command.CommandText = "SELECT column_fistname_id FROM table_identy WHERE column_famillyname='" + vFamillyName + "'";
MySqlDataReader reader = command.ExecuteReader();
string vFistNam_id_get = null;
while (reader.Read())
{   
    vFistNam_id_get = (int)reader["column_fistname_id"];
}

您使用的ADO.NET类型错误。最简单的方法是使用MySqlHelper静态方法,如下所示:

string vFistNam_id_get = (string)
                    MySqlHelper.ExecuteScalar(dbConnString, "select `col1` from `table1`");
string vFistNam_id_get = (string)
                    MySqlHelper.ExecuteScalar(dbConnString, "select `col1` from `table1`");