2015-05-10 105 views
0

我需要选择包含来自多个列的关键字行从多个列中获取数据,而不是一列如:SQL:用在哪里,或者

"SELECT * From UserTable WHERE Name='" + name + "'" + " OR FullName='" + name + "'"" 

我要选择多列为准一行包含变量'name'。但上述查询不起作用。应该做些什么改变?

如果名称中包含的值,或者如果全名中包含的值或者即使两者包含的价值,我会liek让那些行:)当前查询给了我一个例外:

Incorrect syntax near the keyword 'FullName'. 

我试着这也为另外一个例子:

  SqlConnection cnn = new SqlConnection(conString); 

      SqlCommand cmd = new SqlCommand("Select * from TheHive WHERE [email protected] or Group like @group", cnn); 
      cmd.Parameters.Add("@Variable", SqlDbType.VarChar).Value = "wef"; 
      cmd.Parameters.Add("@Group", SqlDbType.VarChar).Value = "wef" + "%"; 

      cnn.Open(); 
      SqlDataReader rdr = cmd.ExecuteReader(); 
      while (rdr.Read()) 
      { 
       OpalData data = new OpalData(); 
       data.ID = Convert.ToInt32(rdr["id"]); 
       data.CodeLine = rdr["CodeLine"].ToString(); 
       data.Variable = rdr["Variable"].ToString(); 
       data.Group = rdr["Group"].ToString(); 
       data.Action = rdr["Action"].ToString(); 
       data.Number = rdr["Number"].ToString(); 

       knowledge.Add(data); 
      } 

而且它的微软Azure表之中:

enter image description here

我仍然得到相同的错误。

我只是想找到所有具有字符串'wef'的行,并期望输出为所有行,因为所有行至少在其一列中包含'wef'。

+2

你是什么意思由_doesn't WORK_做?例如,您可以加入您的表格。 –

+0

@SonerGönül非常抱歉,我的意思是同一张表的多列COLORNS – Dinuka

+5

要修复的第一件事:停止构建你的SQL。使用参数化的SQL。您当前的代码不适用于包含撇号的名称,并且容易受到SQL注入攻击。 –

回答

0

我打算假设您有一种情况,名称是像Joe这样的名字,FullName就像是Joe Smith,并且您想要查找Joe的第一个名称或包含Joe的FullName。因此,它应该是:

"SELECT * From UsersTable WHERE Name='" + name + "' OR FullName like '" + name + "%'"; 

好的。这是为我工作:

SqlCommand cmd; 
    SqlDataReader dr; 
    string ConnectionString = ConfigurationManager.AppSettings["ConnectionString"]; 
    string name = "Joe"; 

    SqlConnection cnn = new SqlConnection(ConnectionString); 

    cmd = new SqlCommand("Select * from t_Users WHERE [email protected] or FullName like @fullname", cnn); 
    cmd.Parameters.Add("@name", SqlDbType.VarChar).Value = name; 
    cmd.Parameters.Add("@fullname", SqlDbType.VarChar).Value = name + "%"; 

    cnn.Open(); 
    dr = cmd.ExecuteReader(); 
    while (dr.Read()) 
    { 
    } 
+0

这仍然给我相同的异常队友:( – Dinuka