如何在文本框中显示搜索结果 [英] How Can I Show Up A Search Result In A Textbox

查看:74
本文介绍了如何在文本框中显示搜索结果的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

大家好,



我创建了一个表格代码,想要在文本框imei中搜索和检索设备Imei的答案,当我点击搜索想要在文本框代码中显示结果(code_mck)我希望显示结果

Hi everybody,

I’ve created a table Code and would like to search and retrieve an answer introducing device Imei in textbox imei und when I click on the search want display the result(code_mck)in textbox code i want display the result

Code
 Imei               code_mck
 356885021519453    830782136







最初我是典型的三层架构和搜索方法在



数据层




Initially I’ve typical three layer architecture and the search method is in

the Data Layer

<pre lang=""><br />
public class unlockDAL<br />
{              <br />
    string strConn = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Users\setup\Desktop\unlock\sim_unlock.accdb";        <br />
    OleDbCommand cmd = new OleDbCommand();<br />
 <br />
    public DataSet recherche(string code)<br />
    {<br />
        DataSet ds = null;<br />
        try<br />
        {<br />
          OleDbConnection cnn = new OleDbConnection(strConn);<br />
          cnn.Open();<br />
          string Oledb = "select*from Code where Imei=" + code + "";<br />
        <br />
          OleDbDataAdapter adapter = new OleDbDataAdapter(Oledb, cnn);<br />
          ds = new DataSet();<br />
          adapter.Fill(ds, "Code");<br />
          cnn.Close();<br />
        }<br />
        catch<br />
        {<br />
          throw;<br />
        }<br />
        return ds;    <br />
    }</pre>

推荐答案

好吧,那只是返回一个DataSet所以它应该是非常简单:

Well, that just returns a DataSet so it should be pretty trivial:
DataSet found = recherche("356885021519453");
if (found.Tables.Count > 0)
    {
    DataTable dt = found.Tables[0];
    if (dt.Rows.Count > 0)
        {
        myTextBox.Text = (string)dt.Rows[0]["code_mck"];
        }
    }

但请不要这样做!永远不要连接字符串来构建SQL命令。它让您对意外或故意的SQL注入攻击持开放态度,这可能会破坏您的整个数据库。改为使用参数化查询。

你的尝试... catch 块实际上什么都不做......

试试这个:

But please, don't do it like that! Never concatenate strings to build a SQL command. It leaves you wide open to accidental or deliberate SQL Injection attack which can destroy your entire database. Use Parametrized queries instead.
And your try...catch block doesn't actually do anything...
Try this:

public DataSet recherche(string code)
    {
    DataSet ds = null;
    using (OleDbConnection cnn = new OleDbConnection(strConn))
        {
        cnn.Open();
        string Oledb = "SELECT * FROM Code WHERE Imei=@IMEI";
        using (OleDbDataAdapter adapter = new OleDbDataAdapter(Oledb, cnn))
            {
            adapter.SelectCommand.Parameters.AddWithValue("@IMEI", code);
            ds = new DataSet();
            adapter.Fill(ds, "Code");
            }
        }
    return ds;
    }


这篇关于如何在文本框中显示搜索结果的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆