gpt4 book ai didi

c# - 将具有相同主键的 2 个表连接 SQL Server 到 C#

转载 作者:行者123 更新时间:2023-11-29 07:25:29 24 4
gpt4 key购买 nike

怎么了,伙计们,我在这段代码中遇到了一些问题,希望你们能弄清楚

我有 2 个使用 SQL Server 的表(客户表和注册表)

客户

  1. Id
  2. Name
  3. etc

注册

  1. Id
  2. Date

我正在开发我的 C# 程序,我想将它们显示到 listview 中,但我的代码有错误:

public void listdata()
{
SqlDataReader reader = null;

listView1.Items.Clear();
listView1.Columns.Clear();
listView1.Columns.Add("ID", 55, HorizontalAlignment.Center);
listView1.Columns.Add("Tanggal Registrasi", 150, HorizontalAlignment.Center);
listView1.Columns.Add("Nama Pemohon", 150, HorizontalAlignment.Center);

System.Data.SqlClient.SqlConnection conn = konn.GetConn();
try
{
conn.Open();
string sql = "select*from Ms_Register a join Ms_Coba b on a.id = b.id where id='" + textBox1.Text + "'";
SqlCommand command = new SqlCommand(sql, conn);
command.ExecuteNonQuery();
conn.Close();

//Check
reader = command.ExecuteReader();


while (reader.Read())
{
ListViewItem item1 = new ListViewItem(reader["id"].ToString(), 0);
item1.SubItems.Add(reader["tanggal"].ToString());
item1.SubItems.Add(reader["nama"].ToString());

listView1.Items.Add(item1);
}
}
catch (Exception e)
{
MessageBox.Show(e.ToString());
}
finally
{
conn.Close();
}

}

两个表具有相同的 id,并且错误显示“列名“id”不明确”有人有办法解决这个问题吗?谢谢

最佳答案

select * from Ms_Register a join Ms_Coba b on a.id = b.id where id='" + textBox1.Text + "'"

应该是WHERE a.idWHERE b.id,在这种情况下,哪个都没有关系,因为它们是相同的

这是非常糟糕的代码,但是,您应该通过使用查询参数来清理 textBox1 的值。您的代码容易受到 SQL 注入(inject)攻击。

https://en.wikipedia.org/wiki/SQL_injection

关于c# - 将具有相同主键的 2 个表连接 SQL Server 到 C#,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34721894/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com