ai didi

c# - 帮我修复这个 SQL 语句?

转载 作者:太空宇宙 更新时间:2023-11-03 22:27:06 24 4
gpt4 key购买 nike

谁能告诉我我的 SQL 语句有什么问题以及我该如何改进它?

da = new SqlDataAdapter("SELECT * FROM Guests"+" WHERE Students.name='" + 
byNametextBox.Text + "'", MyConn);

最佳答案

如果您只需要其中一个表中的列,则 EXISTS 谓词比 JOIN 稍微高效一些。另外 - 永远不要像那样将字符串注入(inject) SQL 语句 - 你只是在乞求 SQL 注入(inject)攻击或相关的崩溃错误(是的,我知道它是一个 Forms 应用程序,但同样适用。如果你正在搜索一个像这样的名字“O'Leary”,你会崩溃的)。

SqlCommand cmd = new SqlCommand("SELECT * FROM Guests WHERE EXISTS (SELECT Id FROM Students WHERE Guests.StudentId = Students.Id And Students.name= @name)", MyConn);
cmd.Parameters.Add("@name", SqlDbType.VarChar, 50).Value = byNametextBox.Text;
SqlDataAdapter adapt = new SqlDataAdapter(cmd);

注意:有些人可能会争辩说“SELECT *”不好,您应该考虑指定单独的列名

关于c# - 帮我修复这个 SQL 语句?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1002628/

24 4 0
文章推荐: c# - 不同的值成员,相同的控件
文章推荐: javascript - 无法发送到特定房间和客户端(Socket.io 2.0.2)
文章推荐: node.js - 仅当有新信息时才扫描 AWS DynamoDB 记录
文章推荐: c# - GridView 单元格未在 RowCommand 事件上注册任何控件
太空宇宙
个人简介

我是一名优秀的程序员,十分优秀!

滴滴打车优惠券免费领取
滴滴打车优惠券
全站热门文章
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com