Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/308.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# 列';价值';不属于表_C# - Fatal编程技术网

C# 列';价值';不属于表

C# 列';价值';不属于表,c#,C#,我在数据库的tblV表中的列名值下存储了一些数字数据。我想将该列值中的数据放入textbox1。 但每当我单击按钮时,它会显示列“值”不属于表错误,即使表中有列值。是什么导致了这个问题 第一个是类,第二个是按钮单击事件的代码 public DataTable GetMaxno(decimal Licenseno) { SqlConnection con = new SqlConnection("Data Source=(LocalDB)\\MSSQLLocalDB; I

我在数据库的
tblV
表中的列名值下存储了一些数字数据。我想将该列值中的数据放入
textbox1
。 但每当我单击按钮时,它会显示
列“值”不属于表
错误,即使表中有列
。是什么导致了这个问题

第一个是类,第二个是按钮单击事件的代码

 public DataTable GetMaxno(decimal Licenseno)
    {
        SqlConnection con = new SqlConnection("Data Source=(LocalDB)\\MSSQLLocalDB; Integrated Security=True; Initial Catalog=sudipDB;");
        string sql = "select Max(Value) from tblv where Licenseno=@licenseno";
        SqlCommand cmd = new SqlCommand(sql, con);
        cmd.Parameters.AddWithValue("@Licenseno",Licenseno );
        SqlDataAdapter da = new SqlDataAdapter(cmd);
        DataTable DT = new DataTable();
        da.Fill(DT);
        return DT;
    }



 tryv tv = new tryv();
    private void button1_Click(object sender, EventArgs e)
    {
        DataTable dt = tv.GetMaxno(Convert.ToDecimal(textBox2.Text));
        if (dt.Rows.Count > 0)
        {
            textBox1.Text= dt.Rows[0]["Value"].ToString();
        }
    }
试一试

试一试


原因可能是您的查询没有返回任何别名作为
Value
。您可以使用
选择Max(Value)作为值来解决这个问题,但不要使用它,而是使用您想要的值。它返回第一行的第一列

还有几件事

  • 用于处置您的连接和命令
  • 不要使用
    AddWithValue
    。使用
    Add
    方法重载指定参数类型及其大小

然后你可以做

textBox1.Text = tv.GetMaxno(Convert.ToDecimal(textBox2.Text)).ToString();

原因可能是您的查询没有返回任何别名作为
Value
。您可以使用
选择Max(Value)作为值来解决这个问题,但不要使用它,而是使用您想要的值。它返回第一行的第一列

还有几件事

  • 用于处置您的连接和命令
  • 不要使用
    AddWithValue
    。使用
    Add
    方法重载指定参数类型及其大小

然后你可以做

textBox1.Text = tv.GetMaxno(Convert.ToDecimal(textBox2.Text)).ToString();

哪一行抛出错误?哪一行抛出错误?
textBox1.Text = tv.GetMaxno(Convert.ToDecimal(textBox2.Text)).ToString();