Ayush Nautiyal Ответов: 3

Как сохранить данные из Gridview в базу данных.


В шаблоне нижнего колонтитула (текстовое поле) я хочу сохранить данные.Данные сохраняются в БД,но нулевое значение переходит в БД. строки a,b,c,d, f принимают значение null. Kindle дает правильный запрос. Мой код таков---

охраняемых недействительными RowCommand(объект отправителя, GridViewCommandEventArgs е)
{
если (электронная.Имя_команды."Равно" ("Вставить"))
{
int retVal = 0;
строка a = ((текстовое поле)управления gridview1.FooterRow.FindControl("Элемент Textbox1")).Текст;
строка B = ((текстовое поле)управления gridview1.FooterRow.FindControl("Поле Textbox2")).Текст;
строка c = ((текстовое поле)управления gridview1.FooterRow.FindControl("Textbox3 И")).Текст;

строки D = ((текстовое поле)управления gridview1.FooterRow.FindControl("TextBox4")).Текст;

строки F = ((текстовое поле)управления gridview1.FooterRow.FindControl("TextBox5")).Текст;

using (SqlConnection Sqlcon = new SqlConnection(strcon))
{
использование (SqlCommand cmd = new SqlCommand())
{
Sqlcon.Открыть();
cmd.Connection = Sqlcon;
cmd.CommandText = "вставить в Grid_to_DB (имя,возраст,город,страна,Mobile_No) значения ('" + a + "','" + b + "','" + c + "','" + d + "', '" + f + "')";
УМК.Метод executenonquery();
}
}
Мой код aspx-это ----------------
<asp:GridView ID="GridView1" runat="server" OnRowCommand="RowCommand" AutoGenerateColumns="False"><Columns><asp:BoundField HeaderText="Id" />
<asp:TemplateField HeaderText="Name">
<FooterTemplate>
<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
</FooterTemplate>
<ItemTemplate>
<asp:Label ID="Label1" runat="server" Text='<%# Eval("Name") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Age">
<FooterTemplate>
<asp:TextBox ID="TextBox2" runat="server"></asp:TextBox>
</FooterTemplate>
 <ItemTemplate>
<asp:Label ID="Label2" runat="server" Text='<%# Eval("Age") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="City">
<FooterTemplate>
<asp:TextBox ID="TextBox3" runat="server"></asp:TextBox>
</FooterTemplate>
<ItemTemplate>
<asp:Label ID="Label3" runat="server" Text='<%# Eval("City") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Country">
<FooterTemplate>
<asp:TextBox ID="TextBox4" runat="server"></asp:TextBox>
</FooterTemplate>
<ItemTemplate>
<asp:Label ID="Label4" runat="server" Text='<%# Eval("Country") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Mobile_No">
<FooterTemplate>
<asp:TextBox ID="TextBox5" runat="server"></asp:TextBox>
</FooterTemplate>
<ItemTemplate>
<asp:Label ID="Label5" runat="server" Text='<%# Eval("Mobile_No") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="ABC">
<FooterTemplate>
<asp:LinkButton ID="LinkButton1" runat="server" CommandName="Insert">LinkButton</asp:LinkButton>
</FooterTemplate>
<ItemTemplate>
<asp:Label ID="Label6" runat="server" Text="Example"></asp:Label>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>

Sanket Saxena

отладка и проверка строки A,B,С,D и т. д. значения я думаю, что он не получает значение из ((текстовое поле)управления gridview1.FooterRow.FindControl("Элемент Textbox1")).Текст;

Ayush Nautiyal

Да. Для того же самого я поднял этот вопрос. В базе данных также хранится null

3 Ответов

Рейтинг:
0

farogh haider

Привет Аюш,

Пожалуйста, добавьте свойство ShowFooter="true" в gridview и привяжите свою сетку к нему

если (!страница.IsPostBack)
{
GridView1.DataSource = dt(ваш источник данных);
Управления gridview1.Привязку();
}

Затем вы можете получить доступ ко всем значениям нижнего колонтитула в RowCommandEvent()


Ayush Nautiyal

На самом деле строки A,B,С,D ,он не получает значение из ((текстовое поле)управления gridview1.FooterRow.FindControl("Элемент Textbox1")).Текст;
В базе данных также хранится null

Рейтинг:
0

Singh Gyan

перед привязкой источника данных к сетке сохраните таблицу в datatable и выполните ту же манипуляцию для получения результата нижнего колонтитула, а затем сохраните значение в DBB.

_SG


Рейтинг:
0

Member 10194514

public string pExecuteQueryList(List<string> strSQL)
    {

        SqlTransaction transExecute = null;
        SqlConnection conExecute = new SqlConnection();
        SqlCommand cmdExecute = new SqlCommand();
        string strReturn = "";
        try
        {
            conExecute.ConnectionString = ConfigurationManager.AppSettings.Get("Connectionstring");

            cmdExecute.CommandTimeout = 0; 
            if (conExecute.State == ConnectionState.Closed)
                conExecute.Open();
            transExecute = conExecute.BeginTransaction();
            for (int intLoopVariable = 0; intLoopVariable < strSQL.Count; intLoopVariable++)
            {
                cmdExecute = new SqlCommand(strSQL[intLoopVariable], conExecute);
                cmdExecute.Transaction = transExecute;
                cmdExecute.ExecuteNonQuery();
            }
            transExecute.Commit();

        }
        catch (SqlException sqlex)
        {
            if (transExecute != null)
            {
                transExecute.Rollback();
                strReturn = sqlex.Message.Replace("'", "");
            }
        }
        catch (Exception ex)
        {
            if (transExecute != null)
            {
                transExecute.Rollback();
                strReturn = ex.Message.Replace("'", "");
            }
        }
        finally
        {
            if (conExecute.State == ConnectionState.Open)
            {
                cmdExecute.Dispose();
                conExecute.Close();
            }
        }
        return strReturn;
    }
 protected void btnsave_Click(object sender, EventArgs e)
    {
        List<string> lstArray = new List<string>();
        string strResult = "";
        if (gridview1.Rows.Count > 0)
        {
            for (int i = 0; i < gridview1.Rows.Count; i++)
            {


                int id =Convert.ToInt32(gridview1.Rows[i].Cells[1].Text);
                string Remark = gridview1.Rows[i].Cells[2].Text.ToString();
//if control added in cell then you should use below line
string Remark = gridview1.Rows[i].FindControl("txtRemark") as TextBox;


                lstArray.Add("insert into table1(id,Remarks)" +
" values(" + id + ",'" + Remark + "')");


            }

        }
        strResult = pExecuteQueryList(lstArray);
        if(strResult=="")
        {
            Page.ClientScript.RegisterStartupScript(GetType(), "msgbox5", "alert('Data Saved');", true);
        }
    }


Richard Deeming

ТРИ ГОДА слишком поздно, и ваш код уязвим для SQL-инъекция[^].