我在MySql中有以下表格:
ID Name
1 Google
2 Yahoo
3 Facebook
4 Whatever
我有一个文本字段,当有人写东西并按下按钮时,它会将此值存储在字符串中。该字符串是上表的名称。然后我有关于选择引用该名称的id的代码。例如,如果用户进入Facebook,我将发现ID = 3.这是代码:
public bool FindCompanyID(string companyName)
{
return ExecQuery("select id from companies where name=@name",
cmd =>
{
cmd.CommandText = "SELECT id from companies WHERE name ='" + companyName + "'";
return cmd;
});
}
我希望有人向我展示有关以下内容的代码示例:将字符串保存为" id" 。如果数据库中的ID = 2我想制作一个
int Company_Number_ID
我会用的。如何让字符串从数据库中读取指定的值?
答案 0 :(得分:2)
我猜您的返回类型为bool
,以检查DDL
语句是否已成功执行。
MySqlCommand cmd = dbConn.CreateCommand();
cmd.CommandText = "SELECT id from companies WHERE name ='" + companyName + "'";
try
{
dbConn.Open();
Company_Number_ID = (Int32)cmd.ExecuteScalar();
} catch (Exception e) {
//Exception occured. Handle it here
}
注意: cmd.Parameters.AddWithValue("@companyName",companyName)
。
这更安全
修改:正如user3185569
在评论中指出的那样,ExecuteScalar
如果您确定它只会返回一行,那就更好了。但由于没有提供此类信息。我没有考虑到这一点。
您可以直接使用ExecuteScalar
。
Company_Number_ID = (Int32)cmd.ExecuteScalar();