【发布时间】:2021-03-05 02:05:54
【问题描述】:
我有一张表,其中包含以下课程详细信息:
并且,在 Windows 中,我放置了一个文本框和一个按钮,当学生写下课程名称时,可以看到该课程的先决条件要求如下:
所以我尝试使用以下代码:
conn.Open();
SqlCommand cmd = conn.CreateCommand();
cmd.CommandType = CommandType.Text;
cmd.CommandText = "select Name from Courses where (Name = '" + textBox2.Text + "') and Preq = Code";
cmd.ExecuteNonQuery();
DataTable dt = new DataTable();
SqlDataAdapter da = new SqlDataAdapter(cmd);
da.Fill(dt);
dataGridView3.DataSource = dt;
conn.Close();
textBox2.Text = "";
但是,代码给了我没有任何数据的名称列,如下所示:
另外,有没有办法在课程没有任何要求时显示消息,例如“本课程没有先决条件要求”之类的?
【问题讨论】:
-
在表的所有行中,
Preq和Code列不相等。因此,Preq = Code条件永远不会满足。 -
删除
cmd.ExecuteNonQuery();电话。完全没用。 -
在sql查询中也使用参数而不是字符串连接。
-
要“显示消息”,您可以通过
int rows = cmd.ExecuteNonQuery();获取受影响的行数。 -
请不要破坏您的帖子。通过在 Stack Exchange 网络上发帖,您已在 CC BY-SA 4.0 license 下授予 Stack Exchange 分发该内容的不可撤销的权利(即无论您未来的选择如何)。根据 Stack Exchange 政策,帖子的非破坏版本是分发的版本,因此,任何破坏行为都将被撤销。如果您想了解更多关于删除帖子的信息,请参阅:How does deleting work?
标签: c# sql visual-studio