2015-09-09 2 views
0

У меня есть форма и кнопка «Добавить». когда я нажимаю на добавление, я вставляю данные в базу данных, а также у меня есть sqldatasource, в котором я указываю только команды select, update, delete. когда я вставляю данные в кнопку «Добавить», я хочу обновить и заполнить сетку автоматически. my sqldatasource id является «sqldatasourceDenter», и я указал его в моем gridview datasourceID = «sqldatasourceDenter».Как связать gridview с sqldatasource с нашей собственной созданной формой

Я пробовал это GridView1.DataSourceID = sqldatasourceDenter; Это дает мне ошибку, не могу преобразовать sqldatasource в строку Я также определил источник данных, но он сообщает, что оба источника данных, datasourceID не могут быть определены.

На самом деле я хочу вставить данные в свою кнопку «Добавить», а затем обновить sqldataSourceDenter, чтобы заполнить сетку.


Это моя функция добавления события нажатия кнопки:

..... add_Click(object sender, EventArgs e){ 
.. 
.... /* here i have other code*/ 
..... 
     else { 

      string dentername = dname.Text.ToString(); 

      string denteraddress = daddress.Text.ToString(); 
      string dentercontact = dcontact.Text.ToString(); 

      //create sql inset query and take to insert query ftn for execution 
      string dquery = string.Format("INSERT INTO Denters(D_NIC, D_Name, D_Address, D_Contact) VALUES('{0}','{1}','{2}','{3}')", denternic, dentername, denteraddress, dentercontact); 

      InsertIntoDB.InsertQuery(dquery); 
      if (InsertIntoDB.count > 0) 
      { 

       gvDenter.DataSourceID = SqlDataSourceDenter; 
       Response.Write("<script>alert('Denter added successfully')</script>"); 
       InsertIntoDB.count = 0; 
       ClearDenterFields(); 
      } 
     } 
} 

Мой ASPX код:

<asp:SqlDataSource ID="SqlDataSourceDenter" runat="server" ConnectionString="<%$ ConnectionStrings:VehiclesSystemConnectionString2 %>" 
SelectCommand="SELECT [D_NIC], [D_Name], [D_Address], [D_Contact] FROM [Denters]"> 
</asp:SqlDataSource> 

<asp:GridView ID="gvDenter" Visible="False" DataKeyNames="D_NIC" runat="server" AutoGenerateColumns="False" DataSourceID="SqlDataSourceDenter" > 
</asp:GridView> 

ответ

0

Вы можете иметь что-то вроде

protected void Page_Load(object sender, EventArgs e) 
{ 
    if (!IsPostBack) 
    { 
     BindDataToGrid(); 
    } 
} 

protected void BindDataToGrid() 
{ 
    string conString = ConfigurationManager.ConnectionStrings["MyConnectionString"].ConnectionString; 
    DataTable dt = new DataTable(); 
    using (SqlConnection con = new SqlConnection(conString)) 
    { 
     string myQuery = "SELECT * FROM MYTABLE"; 
     SqlCommand cmd = new SqlCommand(myQuery); 
     using (SqlDataAdapter sda = new SqlDataAdapter()) 
     { 
      cmd.Connection = con; 
      con.Open(); 
      sda.SelectCommand = cmd; 
      sda.Fill(dt); 
      GridView1.DataSource = dt; 
      GridView1.DataBind(); 
     } 
    } 
} 

protected void Add(object sender, EventArgs e) 
{ 
    //Insert To DB Code here 
} 
Смежные вопросы