2013-04-15 7 views
0

Мне нужно привязать datalist control к значениям, вставленным в форму поиска frined. вот мой код:datalist contol не связывает

protected void search_Click(object sender, EventArgs e) 
    { 
SqlConnection cn = new SqlConnection(@"Data Source=.\SQLEXPRESS;AttachDbFilename=C:\Users\Mahi\Documents\Visual Studio 2010\Projects\fc 6-4\fc\App_Data\fc.mdf;Integrated Security=True;User Instance=True"); 

     cn.Open(); 

     string str = "select unm='" + funm_txt.Text + "' , university='" + DDLuni.SelectedItem + "', city='"+ DDLcity .SelectedItem +"' , yjoin='" + DDLyjoin.SelectedValue + "' ,yleave= '" + DDLycom.SelectedValue + "', ybatch='" + DDLbtch.SelectedValue + "' from profile"; 

     SqlCommand cmd = new SqlCommand(str, cn); 
     cmd.ExecuteNonQuery(); 
     SqlDataAdapter da = new SqlDataAdapter(str, cn); 
     DataTable dt = new DataTable(); 

     DataList1 .DataSource =dt; 
     DataList1.DataBind(); 
     cn.Close(); 

    } 
+0

вы отлажена, чтобы увидеть, если «дт» заполняется с некоторыми строками? Если нет, это может быть причиной. – Nexus23

+0

Какую проблему вы столкнулись? –

+0

@nexus yes u r ryt dt is nt населенный, .. wht должен я hve делать .. – 2013-04-15 16:03:18

ответ

1

Есть несколько вещей, которые я заметил:

-Прежде всего, вы сильно vulnerable to sql-injection attacks, как вы передаете введены пользователем значения непосредственно в базу данных. Вы можете avoid this by using a parameterised query.

-Всегда вам необходимо отфильтровать записи в предложении WHERE. На данный момент вы назначаете введенные пользователем/выбранные значения в запрос выбора.

-И вам нужно использовать SelectedValue из списка не SelectedItem

-Также вы можете использовать using() блоки, чтобы получить SqlConnection and DataAdapter Disposed в конце.

Попробуйте это (Пожалуйста, замените col1, col2 по мере необходимости и выполнить запрос назначая все параметры):

DataTable dt = new DataTable(); 
using (SqlConnection cnn = new SqlConnection("your_conn_string")) 
{ 
    string str = "Select Col1, Col2,... From profile " + 
       "Where unm = @unm and university= @uni and " + 
       "..." + 
       "ybatch = @ybatch"; 

    SqlCommand cmd = new SqlCommand(str, cnn); 
    cmd.Parameters.AddWithValue("@unm",funm_txt.Text); 
    cmd.Parameters.AddWithValue("@uni",DDLuni.SelectedValue); 
    ... 
    cmd.Parameters.AddWithValue("@ybatch",DDLbtch.SelectedValue); 


    using (SqlDataAdapter adapter = new SqlDataAdapter()) 
    { 
    adapter.SelectCommand = cmd; 

    cnn.Open(); 
    adapter.Fill(dt); 
    } 
} 

DataList1.DataSource =dt; 
DataList1.DataBind(); 
0

попробовать это,

cn.Open(); 

    string str = "select unm='" + funm_txt.Text + "' , university='" + DDLuni.SelectedItem + "', city='"+ DDLcity .SelectedItem +"' , yjoin='" + DDLyjoin.SelectedValue + "' ,yleave= '" + DDLycom.SelectedValue + "', ybatch='" + DDLbtch.SelectedValue + "' from profile"; 

    SqlDataAdapter da = new SqlDataAdapter(str, cn); 
    DataTable dt = new DataTable(); 
    da.fill(dt); 
    DataList1 .DataSource =dt; 
    DataList1.DataBind(); 
    cn.Close(); 
+0

еще nt wrking – 2013-04-15 16:02:16

+0

Есть ли в таблице данных какие-либо данные? –

+0

yes..it имеет данные – 2013-04-15 16:59:24

0

Добавить следующий код:

Ваш SqlDataAdapter и SqlCommand не обменивается.

и вы не заполнили Datatable в результате.

da.SelectCommand = cmd; 
da.fill(dt); 
+0

еще не wrking – 2013-04-15 16:01:46

+0

с какой проблемой вы столкнулись? пожалуйста, подайте иск на контрольную точку для проверки. то дайте мне знать. –

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