首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >C#表单中的SQL搜索

C#表单中的SQL搜索
EN

Stack Overflow用户
提问于 2012-10-26 05:22:28
回答 2查看 1.1K关注 0票数 0

我正在尝试设置一个简单的c#表单来搜索我们的一个SQL数据库。当我尝试调试时,我一直收到“SQLException未处理”的错误。我知道SQL语句可以工作,我可以在我的服务器上很好地运行它。我认为这是我试图从文本框中输入数据的方式的问题。有人能给我一些指导吗?

代码语言:javascript
复制
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Data.SqlClient;

namespace USER_Lookup
{
    public partial class Search : Form
    {
        DataSet ds = new DataSet();
        SqlConnection cs = new SqlConnection("Data Source=PC01; Initial Catalog=DB01; Integrated Security=TRUE");
        SqlDataAdapter da = new SqlDataAdapter();

        public Search()
        {
            InitializeComponent();
                    }

        private void button_Search_Click(object sender, EventArgs e)
        {
            string badgeCode = textBox_badgeCode.Text.Trim();
            da.SelectCommand = new SqlCommand
                ("SELECT db01.dbo.staff.lastname AS 'Last Name', db01.dbo.staff.firstname AS 'First Name', db01.dbo.staff.badgecode AS 'User ID', db01.dbo.staffrole.name AS 'Role' FROM db01.dbo.staff, db01.dbo.staffrole, db01.dbo.staff_staffrole WHERE db01.dbo.staff.badgecode =" + badgeCode + "AND db01.dbo.staff.id = db01.dbo.staff_staffrole.staff_id AND db01.dbo.staff_staffrole.staffrole_id = db01.dbo.staffrole.id", cs);
            ds.Clear();
            da.Fill(ds);

            dg.DataSource = ds.Tables[0];
        }
    }
}
EN

Stack Overflow用户

发布于 2012-10-26 05:24:41

我相信你需要在badgeCode周围加上单引号。而且,你在下一个和之前少了一个空格。试试这个:

代码语言:javascript
复制
...staff.badgecode = '" + badgeCode + "' AND...

请记住,您的代码包含SQL注入攻击漏洞。您应该使用参数来提供badgeCode。

票数 2
EN
查看全部 2 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13077497

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档