如何在 Visual Studio 2015 中将数据库中的一行显示到文本框

How could I show a row from the database to a textbox in Visual Studio 2015

我刚开始使用 Visual Studio,我想知道如何将 maincategory table 的 maincategory_name 列下的第一行回显到文本框 1 .我遵循了有关如何通过数据库插入数据的指南,但我想知道的是如何打印出一个,所以我有点困惑我将如何做到这一点,因为我知道我在文本框中得到的输出是:System.Data.SqlClient.SqlCommand

namespace TrialForDatabase
{
public partial class Form1 : Form
{

    SqlConnection sc = new SqlConnection("Data Source=(LocalDB)\MSSQLLocalDB;AttachDbFilename='C:\Users\flex\Documents\Visual Studio 2015\Projects\Inventory\Inventory\inventory.mdf';Integrated Security=True;Connect Timeout=30");
    SqlCommand cmd;

    public Form1()
    {
        InitializeComponent();
    }

    private void button1_Click(object sender, EventArgs e)
    {
        sc.Open();
        cmd = new SqlCommand("SELECT maincategory_name FROM maincategory", sc);
        textBox1.Text = cmd.ToString();
        sc.Close();
    }
}
}

ToString() not 不是从 Object 重新定义的,所以它只打印 class 的名字。

您想要做的是打印您的 SQL 命令的 结果 ,为此,您将需要...嗯,执行它。

SqlCommand.ExecuteReader() will return a SQLDataReader 对象,您可以像使用简单数组一样从中读取行。

所以如果你真的只想要第一行,你可以快速而肮脏地逃脱:

private void button1_Click(object sender, EventArgs e)
{
    sc.Open();
    cmd = new SqlCommand("SELECT maincategory_name FROM maincategory", sc);
    textBox1.Text = cmd.ExecuteReader()[0];
    sc.Close();
}

此函数首先创建您的 SQL 命令,然后使用 SqlCommand.ExecuteReader() 执行它,然后使用 SqlDataReader.Read() 检查您是否得到任何结果,然后显示第一列将结果的第一行添加到文本框:

   private void button1_Click(object sender, EventArgs e)
   {
       sc.Open();
       cmd = new SqlCommand("SELECT maincategory_name FROM maincategory", sc);
       using (var reader = cmd.ExecuteReader()){
           if ( reader.Read() )
           {
              textBox1.Text = reader.GetString(0);
           }
       };

       sc.Close();
   }

有关所用 类 的更多信息,请参阅此处:

https://msdn.microsoft.com/de-de/library/system.data.sqlclient.sqlcommand(v=vs.110).aspx https://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqldatareader(v=vs.110).aspx