C# C:如何根据字符串检查数据行

C# C:如何根据字符串检查数据行,c#,asp.net,.net,C#,Asp.net,.net,我当前打开了一个连接,该连接只是通过用户输入的依赖项进行查询。我的对象是正确的,我已经设置了与对象相关的实例,并且一切正常 我现在需要匹配,如果用户输入与存储的数据库数据相同,那么它似乎不起作用;不过我没有犯错误 在做了一些我自己的调试和研究之后,我尝试使用ToString将我的DataRow转换成字符串;但还是没有运气 任何人都可以看看这段代码,并可能帮助我尝试找出这一点吗?非常感谢 DataSet ds = new DataSet(); query = new MySqlDataAdapte

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

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

在做了一些我自己的调试和研究之后,我尝试使用ToString将我的DataRow转换成字符串;但还是没有运气

任何人都可以看看这段代码,并可能帮助我尝试找出这一点吗?非常感谢

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。出于安全目的,请选择此选项,因为我不希望用户直接输入查询。

请查找代码:我对值进行了硬编码,而不是数据库中的数据。 希望对你有帮助

        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);
            }
        }

你可以考虑做D[我] [生意人]。而不是我也尝试过的数据行。我做了一个简单的回答;它确实保存了正确的数据,只是出于某种原因,我无法将字符串与其保存的数据进行匹配。sinput是否也保存了正确的值?您的代码段没有显示赋值在if语句之前放置断点,并检查toTest和sinput的值,您描述的是它们不匹配。请注意,如果使用不同的编码,两个看起来相同的字符串可能不匹配。您可以尝试使用string.Equalsstr1、str2、comparison;而不是==因为您可以指定比较类型。我理解这一点,但BusinessID实际上类似于AR44字符串。所以这行不通。我已经把它解放了,我会研究你的方法。谢谢大家!!您的意思是说您的businessId为:varchar int+字符的模式。是的,这就是模式。我在这个问题上的方法确实有效,我在比赛结束后在错误的地方输出结果,因此没有注意到它确实有效:愚蠢的我。