所以我有一个表,我想从表中选择一个值并将其存储到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?
感谢您的帮助!
答案 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(请参阅链接文档中的示例)。