获取具有指定 ID 的表中行的值



我有一个表格,其中包含学生的名字,姓氏,班级等,每个学生都有自己的"学生代码"。我想输入一个"学生代码"并返回具有指定学生代码的行的值。

搜索了很多,我试图使用像这个问题这样的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";
}

正如Sami Kuhmonen所建议的那样,你不需要1行的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";
}   

好的,您已经打开了与数据库的连接 - 这是第一步。 但是,在完成此操作之后,您可能希望使用SqlCommand和SqlDataReader。 我注意到你已经有一个MySqlCommand变量 - 但你只是把它设置为一个空白命令。

MySqlCommand cmd = new MySqlCommand();

。那不是你想要的。 您希望将该"cmd"变量设置为要运行的命令。

然后,一旦你完成了这些事情,你将需要做一些事情,比如:

using (SqlDataReader reader = cmd.ExecuteReader())
{
    data = new DataTable();
    data.Load(reader);
}
conn.Close();

希望这有所帮助。 祝你好运:-(

相关内容

  • 没有找到相关文章

最新更新