C# stViewDetails.DataBind();在page_Load event中,最好创建一个单独的函数,复制其中的行,并在page_Load中调用该函数,并替换btnregister_Click event中的行。这很好。但你能解释这句话吗?Data
C# stViewDetails.DataBind();在page_Load event中,最好创建一个单独的函数,复制其中的行,并在page_Load中调用该函数,并替换btnregister_Click event中的行。这很好。但你能解释这句话吗?Data,c#,asp.net,data-binding,C#,Asp.net,Data Binding,stViewDetails.DataBind();在page_Load event中,最好创建一个单独的函数,复制其中的行,并在page_Load中调用该函数,并替换btnregister_Click event中的行。这很好。但你能解释这句话吗?DataTable dt=ds.表[0];为什么设置索引值???我可以知道如何在运行代码时显示该表中已经存在的所有数据行值吗。如果在页面加载时希望表中存在所有数据,则应在页面加载事件中选择该选项。您应该做的是将起始6行从SqlDataAdapter复制
stViewDetails.DataBind();在page_Load event中,最好创建一个单独的函数,复制其中的行,并在page_Load中调用该函数,并替换btnregister_Click event中的行。这很好。但你能解释这句话吗?DataTable dt=ds.表[0];为什么设置索引值???我可以知道如何在运行代码时显示该表中已经存在的所有数据行值吗。如果在页面加载时希望表中存在所有数据,则应在页面加载事件中选择该选项。您应该做的是将起始6行从SqlDataAdapter复制到ListViewDetails.DataBind();在page_Load event中,要创建一个单独的函数,请复制其中的行,并在page_Load中调用该函数,并替换btnregister_Click event中的行。
private SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["learnaspConnectionString"].ConnectionString);
protected void btnregister_Click(object sender, EventArgs e)
{
try
{
con.Open();
SqlCommand cmd = new SqlCommand("dbo.RegisterInsert", con);
cmd.CommandType = CommandType.StoredProcedure;
SqlParameter p1 = new SqlParameter("@fname", txtfname.Text);
SqlParameter p2 = new SqlParameter("@lname", txtlname.Text);
SqlParameter p3 = new SqlParameter("@company", txtcompany.Text);
SqlParameter p4 = new SqlParameter("@phone", txtphone.Text);
SqlParameter p5 = new SqlParameter("@address", txtaddress.Text);
SqlParameter p6 = new SqlParameter("@email", txtemail.Text);
cmd.Parameters.Add(p1);
cmd.Parameters.Add(p2);
cmd.Parameters.Add(p3);
cmd.Parameters.Add(p4);
cmd.Parameters.Add(p5);
cmd.Parameters.Add(p6);
cmd.ExecuteNonQuery();
con.Close();
SqlDataAdapter da = new SqlDataAdapter(cmd);
DataSet ds = new DataSet();
da.Fill(ds);
DataTable dt = ds.Tables[0];
ListViewDetails.DataSource = ds;
ListViewDetails.DataBind();
lblmessage.Visible = true;
lblmessage.Text = "Registration Completed Successfully!";
}
catch (SqlException ex)
{
}
}
CREATE PROCEDURE [dbo].[RegisterInsert]
-- Add the parameters for the stored procedure here
@fname nvarchar(50),
@lname nvarchar(50),
@company nvarchar(50),
@phone nvarchar(50),
@address nvarchar(250),
@email nvarchar(250)
SET NOCOUNT ON;
insert into [dbo].[register]
([fname],
[lname],
[company],
[phone],
[address],
[email])
values
(@fname,
@lname,
@company,
@phone,
@address,
@email)
END
private SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["learnaspConnectionString"].ConnectionString);
protected void btnregister_Click(object sender, EventArgs e)
{
try
{
con.Open();
SqlCommand cmd = new SqlCommand("dbo.RegisterInsert", con);
cmd.CommandType = CommandType.StoredProcedure;
SqlParameter p1 = new SqlParameter("@fname", txtfname.Text);
SqlParameter p2 = new SqlParameter("@lname", txtlname.Text);
SqlParameter p3 = new SqlParameter("@company", txtcompany.Text);
SqlParameter p4 = new SqlParameter("@phone", txtphone.Text);
SqlParameter p5 = new SqlParameter("@address", txtaddress.Text);
SqlParameter p6 = new SqlParameter("@email", txtemail.Text);
cmd.Parameters.Add(p1);
cmd.Parameters.Add(p2);
cmd.Parameters.Add(p3);
cmd.Parameters.Add(p4);
cmd.Parameters.Add(p5);
cmd.Parameters.Add(p6);
cmd.ExecuteNonQuery();
SqlDataAdapter da = new SqlDataAdapter("Select * from register",con);//Here you are using same cmd that is for insert so you call insert procedure twice and that's why insert data twice
DataSet ds = new DataSet();
da.Fill(ds);
DataTable dt = ds.Tables[0];
ListViewDetails.DataSource = ds;
ListViewDetails.DataBind();
lblmessage.Visible = true;
lblmessage.Text = "Registration Completed Successfully!";
con.Close();
}
catch (SqlException ex)
{
}
}
CREATE PROCEDURE [dbo].[RegisterInsert]
-- Add the parameters for the stored procedure here
@fname nvarchar(50),
@lname nvarchar(50),
@company nvarchar(50),
@phone nvarchar(50),
@address nvarchar(250),
@email nvarchar(250)
SET NOCOUNT ON;
insert into [dbo].[register]
([fname],
[lname],
[company],
[phone],
[address],
[email])
values
(@fname,
@lname,
@company,
@phone,
@address,
@email)
select * from [dbo].[register]
SqlDataAdapter da = new SqlDataAdapter(cmd, conn);
con.Open();
SqlCommand cmd = new SqlCommand("dbo.RegisterInsert", con);
cmd.CommandType = CommandType.StoredProcedure;
SqlParameter p1 = new SqlParameter("@fname", txtfname.Text);
SqlParameter p2 = new SqlParameter("@lname", txtlname.Text);
SqlParameter p3 = new SqlParameter("@company", txtcompany.Text);
SqlParameter p4 = new SqlParameter("@phone", txtphone.Text);
SqlParameter p5 = new SqlParameter("@address", txtaddress.Text);
SqlParameter p6 = new SqlParameter("@email", txtemail.Text);
cmd.Parameters.Add(p1);
cmd.Parameters.Add(p2);
cmd.Parameters.Add(p3);
cmd.Parameters.Add(p4);
cmd.Parameters.Add(p5);
cmd.Parameters.Add(p6);
SqlDataAdapter da = new SqlDataAdapter(cmd);
DataSet ds = new DataSet();
da.Fill(ds);
DataTable dt = new DataTable();
dt = ds.Tables[0];
ListViewDetails.DataSource = dt;
ListViewDetails.DataBind();
con.close();
lblmessage.Visible = true;
lblmessage.Text = "Registration Completed Successfully!";
DataTable dt = new DataTable();
ListViewDetails.DataSource = dt;
con.close();
// check if ds has a table
if(DS.TABLES.COUNT>0)
{
//check if ds.table[0] has any rows
if(DS.TABLES[0].ROWS.COUNT>0){
//do something
}
}