gpt4 book ai didi

c# - 如何根据 VS2012 上另一个数据网格的选定行在数据网格上显示 sql 队列结果

转载 作者:太空宇宙 更新时间:2023-11-03 13:29:32 25 4
gpt4 key购买 nike

这是我的代码:

public void loadGrid1() {
con.Open();
cmd = new SqlCommand(@"SELECT StudID, Stud_Lname, Stud_Fname FROM STUDENTS;",con);
rdr = cmd.ExecuteReader();
while (rdr.Read()) {
dataGridView2.Rows.Add(rdr[0].ToString(), rdr[1].ToString(), rdr[2].ToString());
}
con.Close();
}

public void loadGrid3() {
con.Open();
cmd = new SqlCommand(@"SELECT Title, Author FROM Books INNER JOIN Borrow ON Borrow.BookID = Books.BookID WHERE Borrow.StudID = '"+dataGridView2.SelectedRows[0].Cells[0].Value.ToString()+"';", con);
rdr = cmd.ExecuteReader();
while (rdr.Read()) {
dataGridView3.Rows.Add(rdr[0].ToString(), rdr[1].ToString());
}
con.Close();
}

loadGrid1 是我用来加载 grid 1 内容的函数,而 loadGrid3 应该显示在 上借的书grid 3grid 1 中选定的学生。

我做错了什么?

最佳答案

首先,您的查询容易受到 sql 注入(inject)的影响。除此之外,您可能想要检查在这里创建的实际查询是什么(如果有的话):

SqlCommand(@"SELECT Title, Author FROM Books INNER JOIN Borrow ON Borrow.BookID = Books.BookID WHERE Borrow.StudID = '"+dataGridView2.SelectedRows[0].Cells[0].Value.ToString()+"';");

也许改成这样?

string qryString = @"SELECT Title, Author FROM Books INNER JOIN Borrow ON Borrow.BookID = Books.BookID WHERE Borrow.StudID = '"+dataGridView2.SelectedRows[0].Cells[0].Value.ToString()+"';"

SqlCommand(qryString);

编辑 1:何时调用 Loadgrid3 方法?

编辑 2:尝试按如下方式更改代码:

public void loadGrid1()
{
con.Open();
cmd = new SqlCommand(@"SELECT StudID, Stud_Lname, Stud_Fname FROM STUDENTS;",con);
rdr = cmd.ExecuteReader();
while (rdr.Read())
{
dataGridView2.Rows.Add(rdr[0].ToString(), rdr[1].ToString(), rdr[2].ToString());
}

// check if dataGridView2 has more than 0 rows
// and then select the first row by default
if(dataGridView2.Rows.Count > 0)
{
dataGridView2.Rows[0].Selected = true
}
con.Close();
}

请记住,这是针对您的直接问题的肮脏修复,但您可能想对 datagridview 事件等做一些事情。

关于c# - 如何根据 VS2012 上另一个数据网格的选定行在数据网格上显示 sql 队列结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21149155/

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