我当前有一个连接打开,只是通过用户输入的依赖查询。我的对象是正确的,我已经设置了与对象相关的实例,它一切正常。
如果用户输入与存储的数据库数据相同,我现在需要匹配,但是它似乎不起作用;我虽然没有犯错误。
在做了一些我自己的调试和研究后,我尝试使用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()
,因为我不想将直接用户输入到查询中。
答案 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);
}
}