我有一张表,其中包含学生的名字,姓氏,班级等,每个学生都有自己的学生代码"。我想输入一个"学生代码"并使用指定的学生代码获取行的值。
我进行了大量搜索,并尝试使用datarow
之类的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";
}
。
这是我的代码:
Billy likes food.
答案 0 :(得分:1)
正如Sami Kuhmonen所提议的,你不需要一行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";
}
答案 1 :(得分:0)
好的,所以你已经打开了与数据库的连接 - 这是第一步。但是,在你完成这些工作之后,你可能会想要使用SqlCommand和SqlDataReader。我注意到你已经有了一个MySqlCommand变量 - 但你只是将它设置为空白命令。
MySqlCommand cmd = new MySqlCommand();
......那不是你想要的。你想设置&#39; cmd&#39;变量到你想要运行的命令。
然后,一旦你完成了这些事情,你就需要做一些事情:
using (SqlDataReader reader = cmd.ExecuteReader())
{
data = new DataTable();
data.Load(reader);
}
conn.Close();
希望这会有所帮助。祝你好运: - )