【问题标题】:How to search urdu text in SQL Server?如何在 SQL Server 中搜索乌尔都语文本?
【发布时间】:2019-10-12 06:39:45
【问题描述】:

将 urdu 文本插入 SQL Server 没有问题,但我在搜索 urdu 文本时遇到问题 - 我不断收到:

0 rows effect

并且文本(我要搜索的)已经在 SQL Server 数据库中。

这是我的代码:

con.Open();

string Query = "Select vendor.VendorID from vendor where vendor.Vendor_Name ='" + textBox4.Text + "'";

SqlDataAdapter SDA = new SqlDataAdapter(Query, con);
DataTable dt = new DataTable();
SDA.Fill(dt);

vend_id = (dt.Rows[0][0]).ToString();
con.Close();

【问题讨论】:

    标签: c# sql-server urdu


    【解决方案1】:

    N 放在字符串文字之前会使它们在 SQL Server 中成为 unicode。你可以这样做:

    string Query = "Select vendor.VendorID from vendor where vendor.Vendor_Name =N'" + textBox4.Text + "'";
    

    但这很容易受到 SQL 注入攻击。请使用也可以处理 unicode 的参数化查询。像这样:

    string Query = "Select vendor.VendorID from vendor where vendor.Vendor_Name =@Name";
    //...
    SDA.SelectCommand.Parameters.AddWithValue("@Name", textBox4.Text);
    

    【讨论】:

    • 好的,但是在第二个查询中,您不使用我必须在第二个查询中输入的 N 关键字
    • 是的。只有字符串文字(即'abc')需要N unicode 标识符。如果您通过参数执行此操作,则会自动处理。这是第二种方法的优点之一
    • 好的,谢谢兄弟,但请看我的另一个问题“如何在存储过程中使用多项选择 sum() 查询”
    • 它在你的帮助下完成了兄弟.. 我正在访问用乌尔都语文本编写的特定供应商的 ID
    • 而且甚至更好如果您检查了Can we stop using AddWithValue() already? 并停止使用.AddWithValue() - 它可能会导致意想不到和令人惊讶的结果...
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多