需要从 SQL Server 中的另一个表访问用户名

Posted

技术标签:

【中文标题】需要从 SQL Server 中的另一个表访问用户名【英文标题】:Need access username from another table in SQL Server 【发布时间】:2021-03-26 18:14:04 【问题描述】:

我在数据库中有两张表,一张是UserAuth,另一张是CarAdd,但我需要在UserAuth 部分的UserAuth 表中显示UserName

此方法显示我的CarAdd 表中的所有数据:

void Bindata()

        SqlCommand cmd = new SqlCommand("select * from CarAdd", con);
        SqlDataAdapter sd = new SqlDataAdapter(cmd);
        DataTable dt = new DataTable();
        sd.Fill(dt);

        dataGridView1.ItemsSource = dt.DefaultView;

但是,现在我需要显示 dataGridView1 部分中UserAuth 表中的用户名。

我试过这段代码:

void BindataUserName()

        SqlCommand cmd = new SqlCommand("select * from UsreAuth where UserName='UserName'", con);
        SqlDataAdapter sd = new SqlDataAdapter(cmd);
        DataTable dt = new DataTable();
        sd.Fill(dt);

        // dataGridView1.ItemsSource = dt.DefaultView;

这是我的保存点击按钮,实际上我需要在点击这个按钮后在dataGridView1上保存并显示用户名:

private void save_Click(object sender, RoutedEventArgs e)

        if (carid.Text != "" && cartype.Text != "" && model.Text != "" && intime.Text!="" && outtime.Text!="" && slotgroup.Text!="")
        
            try
            
                con.Open();

                string newcon = "insert into CarAdd (carid, cartype, carmodel, duration, payment, slot_book, insertdate) values ('" + carid.Text + "','" + cartype.Text + "','" + model.Text + "', '" +txtduration.Text+ "','" +txtpayment.Text+ "','"+ slotgroup.Text +"' ,getdate())";

                SqlCommand cmd = new SqlCommand(newcon, con);
                cmd.ExecuteNonQuery();

                MessageBox.Show("Successfully inserted");
                Bindata();
                // TimeShow();
            
            catch (Exception ex)
            
                MessageBox.Show(ex.Message);
            
            finally
            
                 con.Close();
            
        
        else
        
            MessageBox.Show("Invalid credentials");
        

注意:我已经为这个项目创建了一个 WPF Windows 应用程序

谢谢!

【问题讨论】:

SQL Injection alert - 您应该将您的 SQL 语句连接在一起 - 使用 参数化查询 来避免 SQL 注入 - 查看Little Bobby Tables 【参考方案1】:

由于UserNameUserAuth 表中的一个属性,因此必须对SQL 查询进行相应修改才能获取它。

SELECT UserName
FROM UserAuth

所以对于Bindatausername() 方法,SqlCommand 应该改为如下:

void BindataUserName()

        SqlCommand cmd = new SqlCommand("select UserName from UserAuth where UserName='UserName'", con);

【讨论】:

好的,那么如何从数据库 UserAuth 表中显示带有“Lebel”的用户名! 您可以通过将查询修改为以下查询来查询“Lebel”的UserNameSqlCommand cmd = new SqlCommand("select UserName from UserAuth where UserName='Lebel'", con);

以上是关于需要从 SQL Server 中的另一个表访问用户名的主要内容,如果未能解决你的问题,请参考以下文章

如何从 SQL Server 中的另一个数据库中选择表的数据?

SQL Server:将列数据值从一个表复制到同一数据库中的另一个表

当用户在 MS Access 中修改表中的另一列时,如何在 SQL Server 中将列设置为今天的日期 [关闭]

添加列通过从sql Server中的另一个表中选择所有项目来选择表

如果数据是从表中更新的,则应将数据插入到 SQL Server 2017 中的另一个表中

sql server中的用户临时表和全局临时表的区别