如何从sql字段获取值到c#中的标签?

时间:2017-03-23 19:07:30

标签: c# sql-server visual-studio-2013

我还是c#的新手,所以这可能很傻但我希望能够从c#中依赖于“tuition_code”的标签中的SQL表中的字段显示单个值(tuition_fee) “已经输入..(studenttuition_code)是在SQL中比较的学费代码)

  

到目前为止,这是我的代码:

using (SqlConnection con = new SqlConnection(_connectionstring))
{
   con.Open();
   string sqlQuery = string.Format("SELECT tuition_fee FROM Tuition WHERE tuition_code = '{0}'", studenttuition_code);
   SqlCommand cmd = new SqlCommand(sqlQuery, con);
   SqlDataReader dr = cmd.ExecuteReader();
   while (dr.Read())
   {
     lblAmount.Text = dr.GetValue; 
   }
   con.Close(); 
}
  

这就是我在SQL中的学费表:

CREATE TABLE Tuition
(
    tuition_code VARCHAR (6) NOT NULL,
    tuition_instrument VARCHAR (3) NOT NULL,
    tuition_lessonno INT NOT NULL,
    tuition_roomcode VARCHAR (3) NOT NULL,
    tutor_id VARCHAR (4) NOT NULL,
    tuition_fee DECIMAL NOT NULL,
    CONSTRAINT pk_tuition PRIMARY KEY (tuition_code),
    CONSTRAINT fk_tuitionroomcode FOREIGN KEY (tuition_roomcode) REFERENCES Room(room_code),
    CONSTRAINT fk_tutorfortuiton FOREIGN KEY (tutor_id) REFERENCES Tutor(tutor_id)
)

3 个答案:

答案 0 :(得分:1)

您应该在查询中使用参数化。这通过避免SQL注入使您的查询安全,并且它还使格式化更容易,因为您不必担心使用单引号和所有爵士乐。

除非你的SQL获得多行(它可能不应该),否则你只需要做一次dr.Read()。 您还应该在每个SQL对象上使用using,因为它们都实现了IDisposable。

string sqlQuery = "SELECT tuition_fee FROM Tuition WHERE tuition_code = @tuitionCode";
using (var con = new SqlConnection(_connectionstring))
{
    con.Open();
    using (var cmd = new SqlCommand(sqlQuery, con))
    {
        cmd.Parameters.AddWithValue("@tuitionCode", studenttuition_code);
        using (var dr = cmd.ExecuteReader())
        {
            dr.Read();
            lblAmount.Text = dr.GetString(0);
        }
    }
    con.Close();
}

答案 1 :(得分:0)

我不知道我是否理解你的问题,但我希望能帮助你。

请试试这个。

using (SqlConnection con = new SqlConnection(_connectionstring))
{
  con.Open();
  string sqlQuery = "SELECT TOP 1 tuition_fee FROM Tuition WHERE     
  tuition_code = @tuitionCode";
  SqlCommand cmd = new SqlCommand(sqlQuery, con);
  cmd.Parameters.AddWithValue("@tuitionCode", studenttuition_code);
  SqlDataReader dr = cmd.ExecuteReader();
  while (dr.Read())
  {
    lblAmount.Text = dr["tuition_fee"].ToString();
  }
  con.Close(); 
}

答案 2 :(得分:0)

using (var con = new SqlConnection(_connectionstring))
{
   con.Open();
   string sqlQuery = "SELECT tuition_fee FROM Tuition WHERE tuition_code = @tuitionCode";
   var cmd = new SqlCommand(sqlQuery, con);
   cmd.Parameters.AddWithValue("@tuitionCode", studenttuition_code);
   var dr = cmd.ExecuteReader();
   while (dr.Read())
   {
     lblAmount.Text = dr.GetValue; 
   }
   con.Close(); 
}