C# 在列表框中显示SQL结果
我想在列表框中显示查询。以下是我要做的:C# 在列表框中显示SQL结果,c#,sql,.net,C#,Sql,.net,我想在列表框中显示查询。以下是我要做的: private void PopulatePeople() { string query = "SELECT Name FROM People WHERE KnownFrom = KSOK";//@KnownFrom"; using (connection = new SqlConnection(connectionString)) using (SqlCommand command = new SqlCommand(quer
private void PopulatePeople()
{
string query = "SELECT Name FROM People WHERE KnownFrom = KSOK";//@KnownFrom";
using (connection = new SqlConnection(connectionString))
using (SqlCommand command = new SqlCommand(query, connection))
using (SqlDataAdapter adapter = new SqlDataAdapter(command))
{
//command.Parameters.AddWithValue("@KnownFrom", listBox1.SelectedItem);
DataTable PeopleDT = new DataTable();
adapter.Fill(PeopleDT);
listBox2.DisplayMember = "Name";//+"Surname";
//listBox2.ValueMember = "Id";
listBox2.DataSource = PeopleDT;
}
}
此时,它表示没有列
KSOK
。我做错了什么?如果要搜索的字符串是KSOK
,则需要引用它:
string query = "SELECT Name FROM People WHERE KnownFrom = 'KSOK'"
// ^ ^ quotes
如果
KSOK
是您正在搜索的字符串,则需要引用它:
string query = "SELECT Name FROM People WHERE KnownFrom = 'KSOK'"
// ^ ^ quotes
如果您想使用参数,就像您注释掉的那样,可以执行以下操作(使用ListBox2.SelectedItem.ToString()从UI获取值): 然后,将@变量添加到KSOK的查询字符串中:
string query = "SELECT Name FROM People WHERE KnownFrom = @KnownFrom";
如果您想使用参数,就像您注释掉的那样,可以执行以下操作(使用ListBox2.SelectedItem.ToString()从UI获取值): 然后,将@变量添加到KSOK的查询字符串中:
string query = "SELECT Name FROM People WHERE KnownFrom = @KnownFrom";
尝试改变
string query = "SELECT Name FROM People WHERE KnownFrom = KSOK";
到
当查询中包含字符串文字时,它们应该用单引号括起来。尝试更改
string query = "SELECT Name FROM People WHERE KnownFrom = KSOK";
到
当查询中包含字符串文字时,它们应该用单引号括起来。KSOK显然是它们要搜索的变量名的值应该是
@KnownFrom
。编辑以反映KSOK是搜索字符串。谢谢。是的,KSOK是字符串,但我想从列表框中获取该字符串。但是listBox2.SelectedValue不起作用,这是因为SelectedValue不是框中的文本。您在框中看到的文本来自ListBox2.SelectedItem.ToString()。我会相应地更新答案。是的,我刚刚发现了关于ToString的事。现在它没有回旋,但我猜中间的某个地方数据会被弄乱或者什么的。没有显示任何内容。哦,是的,它的列表框是1.SelectedItem(对不起)。我在listBox1中显示distinkt KnownFrom,我想在listBox2中显示所选KnownFrom的数据。显然,KSOK是他们要搜索的值,变量名应该是@KnownFrom
。编辑以反映KSOK是搜索字符串。谢谢。是的,KSOK是字符串,但我想从列表框中获取该字符串。但是listBox2.SelectedValue不起作用,这是因为SelectedValue不是框中的文本。您在框中看到的文本来自ListBox2.SelectedItem.ToString()。我会相应地更新答案。是的,我刚刚发现了关于ToString的事。现在它没有回旋,但我猜中间的某个地方数据会被弄乱或者什么的。没有显示任何内容。哦,是的,它的列表框是1.SelectedItem(对不起)。我在listBox1中显示distinkt KnownFrom,并希望在listBox2中显示具有所选KnownFrom的数据。您可能最终需要向查询添加Id。例如“选择PeopleId作为Id,从People中选择Name…”您最终可能需要向查询中添加一个Id。比如“选择PeopleId作为Id,从人物中选择姓名…”