C#:如何针对String检查DataRow

时间:2016-02-10 10:58:47

标签: c# asp.net .net

我当前有一个连接打开,只是通过用户输入的依赖查询。我的对象是正确的,我已经设置了与对象相关的实例,它一切正常。

如果用户输入与存储的数据库数据相同,我现在需要匹配,但是它似乎不起作用;我虽然没有犯错误。

在做了一些我自己的调试和研究后,我尝试使用ToString();将我的DataRow转换为String,但仍然没有运气。

有没有人可以看一下这段代码,可能会帮我解决这个问题?非常感谢。

DataSet ds = new DataSet();
query = new MySqlDataAdapter(SQL, conn);
query.Fill(ds, "AllData");
DataTable dt = new DataTable();
dt = ds.Tables["AllData"];
DataRow[] r = dt.Select();
int i = 0;
while (i != r.Length)
    {
     string toTest = r[i]["BusinessID"].ToString();
     if(toTest == sinput)
    {

注意:sinput是用户输入,r[i]["BusinessID"]包含数据库中我尝试与输入字符串匹配的数据。

编辑:出于安全考虑,我没有将任何内容传递到dt.Select(),因为我不想将直接用户输入到查询中。

1 个答案:

答案 0 :(得分:3)

请找到代码:而不是来自数据库的数据我有硬编码的价值。 希望,它会帮助你。

        string Name = "Test1";
        int Id = 1;
        DataSet ds = new DataSet();
        DataTable dt = new DataTable();
        dt.Columns.Add("Id",typeof(int));
        dt.Columns.Add("Name", typeof(string));
        dt.Rows.Add(1,"Test");
        dt.Rows.Add(1, "Test1");
        DataRow[] r = dt.Select();
        int i = 0; //Not Required.
        while (r.Length>0)
        {
            string toTest = r[i]["Name"].ToString();
            int toTest1 =Convert.ToInt32(r[i]["Id"]);
            if (toTest == Name)
            {
                Console.WriteLine(toTest);
            }
            if (toTest1 == Id)
            {
                Console.WriteLine(toTest1);
            }
        }