如何选择mysql值并将其存储到变量C#中

时间:2017-02-07 02:46:19

标签: c# mysql

所以我有一个表,我想从表中选择一个值并将其存储到C#变量中。

我现在拥有的是这个

String connString = System.Configuration.ConfigurationManager.ConnectionStrings["WebAppConnString"].ToString();
conn = new MySql.Data.MySqlClient.MySqlConnection(connString);
try
{
    conn.Open();
    queryStr = "";
    queryStr = "SELECT ipaddress from robolinks where roboID=?roboID";

    cmd = new MySql.Data.MySqlClient.MySqlCommand(queryStr, conn);
    cmd.Parameters.AddWithValue("?roboID", roboID);
    cmd.ExecuteReader();
    conn.Close();

//after closing the connection, get the ipaddress and key it into web browser.

}
catch(Exception)
{

}

所以我知道我已经选择了它但是如何在C#中操作ipaddress?

感谢您的帮助!

3 个答案:

答案 0 :(得分:1)

首先,如果您使用ExecuteReader,则需要先获取值,然后才能关闭连接 第二个是ExecuteReader返回SqlDataReader所以如果你想从Sql中获取一些值,你需要将ExecuteReader的返回变量赋值给某个值

SqlDataReader dr = cmd.ExecuteReader();

现在,使用手动(https://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqldatareader(v=vs.110).aspx)开始编码:

string roboIp;
// Because you know that id is int so imho you don't need parameters.
queryStr = "SELECT ipaddress from robolinks where roboID="+roboID+";";
// This is right.
cmd = new MySql.Data.MySqlClient.MySqlCommand(queryStr, conn);
conn.Open();
var dr = cmd.ExecuteReader();
// Now check if any rows returned.
if (dr.HasRows)
{
    dr.Read();// Get first record.
    roboIp = dr.GetString(0);// Get value of first column as string.
}
dr.Close();// Close reader.
conn.Close();// Close connection.

但如果您只选择一个值,那么最好使用ExecuteScalar代替ExecuteReader

string roboIp;
queryStr = "SELECT ipaddress from robolinks where roboID="+roboID+";";
cmd = new MySql.Data.MySqlClient.MySqlCommand(queryStr, conn);
conn.Open();
var queryResult = cmd.ExecuteScalar();//Return an object so first check for null
if(queryResult!=null)
    // If we have result, then convert it from object to string.
    roboIp = Convert.ToString(queryResult);
else
    // Else make id = "" so you can later check it.
    roboIp = "";

答案 1 :(得分:0)

  Using connection As New MySqlConnection(connectionstring)
        SQL = "Select * from IPQC_modelParameter where full_model='" & lblModel.Text & "' and drawing_no='" & lblDrwing.Text & "' and machine_name='" & cbmachnum.Text & "' and parameter='" & tempparam & "' "
        Using da As New MySqlDataAdapter(SQL, connection)
            Dim ds As New DataSet
            da.Fill(ds)
            txtucl.Text = ds.Tables(0).Rows(0)("ucl").ToString

        End Using
    End Using

供参考:我使用vbnet,您只需将其转换为c#语法

即可

答案 2 :(得分:0)

如果您只期望单个值,最简单的方法是使用ExecuteScalar()返回可以直接捕获的单个对象。

否则,您正在使用的ExecuteReader()方法实际上会返回一个可以循环的DataReader(请参阅链接文档中的示例)。