Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/282.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在c#中从sql字段到标签获取值?_C#_Sql Server_Visual Studio 2013 - Fatal编程技术网

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

如何在c#中从sql字段到标签获取值?,c#,sql-server,visual-studio-2013,C#,Sql Server,Visual Studio 2013,我对c还是很陌生,所以这可能很愚蠢,但我希望能够在c的标签中显示SQL表中字段字段的单个值(学费),具体取决于输入的“学费代码”。。(studenttutory_code)是与SQL中的进行比较的学费代码) 以下是我目前的代码: 这是我在SQL中为学费表准备的内容: 我不知道我是否理解你的问题,但我希望能帮助你 试试这个吼叫 using (SqlConnection con = new SqlConnection(_connectionstring)) { con.Open(); str

我对c还是很陌生,所以这可能很愚蠢,但我希望能够在c的标签中显示SQL表中字段字段的单个值(学费),具体取决于输入的“学费代码”。。(studenttutory_code)是与SQL中的进行比较的学费代码)

以下是我目前的代码:

这是我在SQL中为学费表准备的内容:


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

试试这个吼叫

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(); 
}

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

您只需要执行dr.Read()一次,除非您的SQL得到多行(它可能不应该这样做)。 您还应该在每个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();
}

如果有
string.Format
函数,则不需要将
{}
括在单引号中。。删除单引号。执行代码/通过调试运行时会发生什么?使用参数化;用
@tutioncode
替换
'{0}'
,然后执行
cmd.Parameters.AddWithValue(“@tutioncode”,studenttutioncode”)执行查询之前。这是为了防止SQL注入。可能会起作用,但如果在select语句中执行
TOP 1
,则可以去掉while循环,而TOP 1没有顺序,因为您无法知道哪一行将返回。如果只有一行的可能性,那么顶部是没有意义的。
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(); 
}
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(); 
}
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();
}