My Gridview(Source Code):
My Gridview(Design View):
Code Behind method to set the default view of the Gridview :
My Table (Education_Details):
<asp:GridView ID="grdEducation" runat="server" AutoGenerateColumns="false" CssClass="gridview" ShowFooter="true">
<Columns>
<asp:TemplateField>
<HeaderTemplate>
Examination Passed
</HeaderTemplate>
<ItemTemplate>
<asp:TextBox ID="txtExamination" runat="server"></asp:TextBox>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField>
<HeaderTemplate>
College/University
</HeaderTemplate>
<ItemTemplate>
<asp:TextBox ID="txtCollege" runat="server"></asp:TextBox>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField>
<HeaderTemplate>
Total Mark
</HeaderTemplate>
<ItemTemplate>
<asp:TextBox ID="txtTotalMark" runat="server"></asp:TextBox>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField>
<HeaderTemplate>
Marks Secured
</HeaderTemplate>
<ItemTemplate>
<asp:TextBox ID="txtMarksSecured" runat="server"></asp:TextBox>
</ItemTemplate>
<FooterTemplate><asp:Button ID="btnSave"
runat="server"
Text="Save"
/></FooterTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
My Gridview(Design View):
protected void Page_Load(object sender, EventArgs
e)
{
if (!IsPostBack)
{
FillGrid();
}
}
public void
FillGrid()
{
DataTable table = new
DataTable();
DataRow row;
DataView view;
for (int i = 0; i
< 4; i++)
{
row = table.NewRow();
table.Rows.Add(row);
}
view
= new DataView(table);
grdEducation.DataSource = view;
grdEducation.DataBind();
}
My Table (Education_Details):
After that add a Type in your Database.
CREATE TYPE Educations
AS TABLE
(
Education_Name varchar(50),
College_Name varchar(50),
Total_Mark decimal(18,2),
Marks_Secured decimal(18,2)
)
Then create a stored procedure
CREATE PROCEDURE InsertEducationDetails
(
@Education as Educations
READONLY
/* "Educations" is the Type
you have created earlier */
/* "@Education" is a type of
"Educations" like we are using int,varchar etc*/
)
AS
BEGIN
INSERT INTO Education_Details
(
Education_Name,College_Name,Total_Mark,Marks_Secured
)
SELECT Education_Name,College_Name,Total_Mark,Marks_Secured
FROM @Education;
END
Now write this code behind method in your page and add this as a delegate for the button present inside the gridview.
protected void
SaveButton_Click(object sender, EventArgs e)
{
DataTable dtEducation = new
DataTable();
DataColumn dcExam = new
DataColumn("Exam_Name",
typeof(string));
DataColumn dcCollege = new
DataColumn("College_Name",
typeof(string));
DataColumn dcTotalMark = new
DataColumn("Total_Mark",
typeof(decimal));
DataColumn dcSecurdedMark = new DataColumn("Secured_Mark", typeof(decimal));
dtEducation.Columns.Add(dcExam);
dtEducation.Columns.Add(dcExam);
dtEducation.Columns.Add(dcCollege);
dtEducation.Columns.Add(dcTotalMark);
dtEducation.Columns.Add(dcSecurdedMark);
dtEducation.Columns.Add(dcSecurdedMark);
foreach (GridViewRow
gr in grdEducation.Rows)
{
TextBox txtExamination = (TextBox)gr.FindControl("txtExamination");
TextBox txtCollege = (TextBox)gr.FindControl("txtCollege");
TextBox txtTotalMark = (TextBox)gr.FindControl("txtTotalMark");
TextBox txtMarksSecured = (TextBox)gr.FindControl("txtMarksSecured");
DataRow drNew = dtEducation.NewRow();
drNew["Exam_Name"] =
txtExamination.Text;
drNew["College_Name"] =
txtCollege.Text;
drNew["Total_Mark"] = Decimal.Parse(txtTotalMark.Text);
drNew["Secured_Mark"] = Decimal.Parse(txtMarksSecured.Text);
dtEducation.Rows.Add(drNew);
}
SqlConnection con = new
SqlConnection("---Your
Connection String---");
SqlCommand
insertEducations = new SqlCommand("InsertEducationDetails", con);
insertEducations.CommandType = CommandType.StoredProcedure;
insertEducations.Parameters.AddWithValue("@Education",
dtEducation);
con.Open();
insertEducations.ExecuteNonQuery();
con.Close();
}
After that i entered values to be entered by debugging the page.
After clicking the save button, the values will be inserted to the database.
Result:
Regards,
Prajanuranjan....
No comments:
Post a Comment