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

标签 c# mysql sql-server

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

我有 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/

相关文章:

c# - API GET 请求返回 HTML/文本而不是 JSON

c# - 编写 unittest 以创建一个文件,然后删除该文件

c# - 遍历 KeyValuePair 以外的内容时如何输出字典值

C# EF6 LINQ 从 include() 中的子级中选择多个第二个子级

sql-server - "Create sql function , select english characters?"

SQL Server 存储过程和其他数据库的权限

c# - 如何为 <% %> 之间的文本添加颜色样式

sql - MySQL查询有时还可以,其他时候需要5分钟!

javascript - PHP MySQL : count views per month for jQuery charts

c# - 从项目目录中读取 SQL 查询文件