【问题标题】:Display data in a label in C#在 C# 中的标签中显示数据
【发布时间】:2014-03-28 10:58:52
【问题描述】:

我有一个问题。 WinForm如何在标签中显示数据库中的数据?

private void button1_Click(object sender, EventArgs e)
{
    string connectionString = @"Data Source=.\SQLEXPRESS; AttachDbFilename=C:\Users\John\Documents\Visual Studio 2010\Projects\Shop\Shop\shop.mdf; Integrated Security=True;Connect Timeout=30;User Instance=True";
    SqlConnection myDbconnection = new SqlConnection(connectionString);
    myDbconnection.Open();
    sqlQRY = "Select prix from fleurs where nom='"+flori.SelectedValue+"'";
    SqlCommand cmd = new SqlCommand(sqlQRY, myDbconnection);
    SqlDataReader reader = cmd.ExecuteReader();
    reader.Read();
    if (reader.HasRows)
    {
        label6.Text = 'prix'.ToString();
    }
    else
    {
        MessageBox.Show("Error");
    }
}

我需要在label6.Text 中显示“prix”。

【问题讨论】:

  • 你有什么错误吗?
  • 它显示的正是你告诉它的内容。
  • 他的意思是他想要数据库中'prix'列的值。如果一行中只有一个值,@Menfis ExecuteScalar 是正确的方法 - 请参阅我的答案

标签: c# winforms label


【解决方案1】:

除非您没有收到任何其他错误。应该够了

if (reader.HasRows)
{
   label6.Text = "prix";

}

如果您想从数据库中读取它并且 prix 是数据库中列的名称,那么您可以这样读取它

label6.Text = reader["prix"].ToString();

【讨论】:

  • @MenfisMenfis 你的数据库中列的名称是什么?
【解决方案2】:

试试这个。 label6.Text = reader["prix"].ToString();

【讨论】:

  • 嘿,谢谢@GrantWinney
【解决方案3】:

我在这里做了很多假设。

其中之一,是否返回 ONE 行(因为您有 ONE 标签)

你应该使用ExecuteScalar

不建议使用 DataReader 和 Command.ExecuteReader 从数据库中获取值

private void button1_Click(object sender, EventArgs e)
    {
        string connectionString = @"Data Source=.\SQLEXPRESS; AttachDbFilename=C:\Users\John\Documents\Visual Studio 2010\Projects\Shop\Shop\shop.mdf; Integrated Security=True;Connect Timeout=30;User Instance=True";
        SqlConnection myDbconnection = new SqlConnection(connectionString);
        myDbconnection.Open();
        sqlQRY = "Select prix from fleurs where nom='"+flori.SelectedValue+"'";
        SqlCommand cmd = new SqlCommand(sqlQRY, myDbconnection);

        var value = (String)cmd.ExecuteScalar();

        if (!string.IsNullOrEmpty(value))
        {
            label6.Text = value;

        }
        else
        {
            MessageBox.Show("Error");
        }
    }

【讨论】:

  • 那是因为您的查询没有返回任何数据
【解决方案4】:

您的代码中出现语法错误撇号'用于characters,而不是字符串,例如

Char myChar = 'a';

如果你只想打印“prix”,你应该使用 quotations ",例如

if (reader.HasRows) 
{ 
    label6.Text = "prix"; // not label6.Text = 'prix'.ToString();
    ...

方法ToString() 在您的情况下过多"prix" 已经是一个字符串

如果您想读取名称为"prix" 的数据库字段,您应该输入它

if (reader.HasRows) 
{
    label6.Text = reader["prix"].toString(); // <- "prix" can't be null 
    ...

【讨论】:

    【解决方案5】:

    我们可以使用这个语句

    label6.Text = "prix";
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-11-15
      • 2013-01-04
      • 1970-01-01
      • 2017-08-21
      • 1970-01-01
      • 2017-09-18
      • 1970-01-01
      相关资源
      最近更新 更多