2017-02-07 7 views
0

Я хочу, чтобы получить некоторые данные из базы данных и у меня есть проблемаПолучить некоторые данные из базы данных

private void BindGrid() 
{ 
    string constr = ConfigurationManager.ConnectionStrings["homeworkConnectionString2"].ConnectionString; 

    using (SqlConnection con = new SqlConnection(constr)) 
    { 
     using (SqlCommand cmd = new SqlCommand()) 
     { 
      cmd.CommandText = "select Id, FileName, Date from tblFiles where CourseName LIKE '%' + TextBox3.Text + '%'"; ; 
      cmd.Connection = con; 
      con.Open(); 

      GridView1.DataBind(); 
      con.Close(); 
     } 
    } 
} 

the database

textbox3 есть, что данные

textbox

Так проблема Я благодарю «LIKE»?

Я изменил его:

private void BindGrid() 
{ 
    string likeCondition = string.Empty; 
    string textBoxContent = TextBox3.Text; 
    var splittedContents = textBoxContent.Split(',').ToList(); 
    int index = 0; 

    foreach (var splittedContent in splittedContents) 
    { 
     likeCondition += "CourseName LIKE %" + splittedContent + "%"; 
     index++; 

     if (index != splittedContent.Length) 
      likeCondition += " OR "; 
    } 

    string constr = ConfigurationManager.ConnectionStrings["homeworkConnectionString2"].ConnectionString; 

    using (SqlConnection con = new SqlConnection(constr)) 
    { 
     using (SqlCommand cmd = new SqlCommand()) 
     { 
      cmd.CommandText = "select Id, FileName, Date from tblFiles where " + likeCondition; ; 
      cmd.Connection = con; 
      con.Open(); 
      GridView1.DataBind(); 
      con.Close(); 
     } 
    } 
} 

, но она по-прежнему не работает - то, что я должен делать?

+0

просьба уточнить вопрос. –

+0

Я хочу получить некоторые данные «где CourseName = programing 1», но я не хочу использовать функцию =, потому что она не будет соответствовать точно видеть данные textbox3 и данные базы данных, которые вы меня поймете. * Извините, мой английский. очень плохо – Sulaiman

+0

попробуйте использовать одну цитату, такую ​​как ''% "+ splittedContent +"% '' –

ответ

1
cmd.CommandText = "select Id, FileName, Date from tblFiles where CourseName LIKE '%' + TextBox3.Text + '%'" 

Ваша строка использует буквальное текстовое поле.

вы хотите что-то вроде

cmd.CommandText = "select Id, FileName, Date from tblFiles where CourseName LIKE '%" + TextBox3.Text + "%'" 

однако, вы бы лучше с paramatized запросов

+0

нет данных :( – Sulaiman

0
cmd.CommandText = "select Id,Name from tblName where Name LIKE '%" + TextBox1.Text + "%'" 
0

Вы должны разделить ваше TextBox3 содержание по отношению к , и строить целое, как состояние.

Я хотел бы сделать это в следующем виде:

  string likeCondition = string.Empty; 
      string textBoxContent = "Programming1,Database";// use TextBox3.Text here 
      var splittedContents = textBoxContent.Split(',').ToList(); 
      int index = 0; 
      foreach (var splittedContent in splittedContents) 
      { 

       likeCondition += "CourseName LIKE %" + splittedContent + "%"; 
       index++; 
       if (index != splittedContent.Length) 
        likeCondition += " OR "; 

      } 

Теперь, вы должны использовать выше likeCondition в запросе следующим способом:

cmd.CommandText = "select Id, FileName, Date from tblFiles where " + likeCondition; ; 
+0

я меняю его, но не работает – Sulaiman

+0

что последний вопрос, который он вам дает? –

+0

ничего ....... – Sulaiman

Смежные вопросы