获取具有指定 id 的表中的行的值
Posted
技术标签:
【中文标题】获取具有指定 id 的表中的行的值【英文标题】:get the values of a row in a table with specified id 【发布时间】:2018-09-01 10:16:19 【问题描述】:我有一个表,其中包含学生的名字、姓氏、班级等,每个学生都有自己的“学生代码”。我想输入一个“学生代码”并取回具有指定学生代码的行的值。
我搜索了很多,并尝试使用datarow
像this question。
这是我的代码:
mysqlConnection connection = new MySqlConnection();
MySqlCommand cmd = new MySqlCommand();
DataTable dt = new DataTable();
[WebMethod]
public string Student_Information(string Student_Code)
connection.ConnectionString = "server= ; userid= ; password= ; database= ;";
connection.Open();
string code = Student_Code;
DataRow[] drs = dt.Select("student_code='" + code + "'");
foreach (DataRow dr in drs)
return "True";
return "False";
【问题讨论】:
您需要什么帮助?代码是否有任何错误?它不工作? 您没有从数据库中加载任何内容。忘记 DataTables 等,只需找到有关如何使用 MySQL 的教程并从那里开始。 你曾经访问过数据库吗?您需要有数据来填充DataTable
。您应该以this question first 开头
【参考方案1】:
好的,您已经打开了与数据库的连接 - 这是第一步。但是,在你完成之后,你可能会想要使用 SqlCommand 和 SqlDataReader。我注意到您已经有了一个 MySqlCommand 变量 - 但您只是将它设置为一个空白命令。
MySqlCommand cmd = new MySqlCommand();
...这不是你想要的。您想将该 'cmd' 变量设置为您要运行的命令。
然后,一旦你完成了这些事情,你将需要做一些类似的事情:
using (SqlDataReader reader = cmd.ExecuteReader())
data = new DataTable();
data.Load(reader);
conn.Close();
希望对您有所帮助。祝你好运:-)
【讨论】:
【参考方案2】:正如 Sami Kuhmonen 建议的那样,您不需要 1 行的 DataTable。对关闭与数据库的连接后需要访问的多行使用 DataTable。
使用 MySqlCommand 和 ExecuteReader() 方法。然后您可以从记录集中读取列。
[WebMethod]
public string Student_Information(string Student_Code)
using( var connection = new MySqlConnection(ConnectionString))
connection.Open();
using(var cmd = connection.CreateCommand())
cmd.CommandText = "select FirstName, LastName, Class from student where student_code=@code";
cmd.Parameters.AddWithValue("@code", Student_Code);
var rs = cmd.ExecuteReader();
if( rs.Read() )
// read the data using something like
var FirstName = rs["FirstName"].ToString();
// or like this
var LastName = rs.GetFieldValue<string>(rs.GetOrdinal("LastName"));
return "True"; // as per your example
else
// student not found
rs.Close();
return "False";
【讨论】:
以上是关于获取具有指定 id 的表中的行的值的主要内容,如果未能解决你的问题,请参考以下文章