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

时间:2018-03-22 20:18:33

标签: c# mysql sql web-services xampp

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

我进行了大量搜索,并尝试使用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.

2 个答案:

答案 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();

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