如何插入下拉列表值,文本框值和gridviews选定行一起?



如何插入下拉列表值,文本框值和gridviews选定行一起?

还附上了数据插入的截图:

输入图片描述

输入图片描述

输入图片描述

我倾向于使用添加按钮向网格添加一行,然后让用户编辑这一行。

但是,假设您在屏幕顶部有这些文本框,输入数据,然后单击按钮添加到数据库,然后重新刷新GV?

我也没有看到一些按钮在顶部区域添加数据?

那么,假设一个按钮添加到顶部区域?

,这将添加行到数据库:

protected void Button3_Click(object sender, EventArgs e)
{
string strSQL =
"INSERT INTO MyTable (Session, Class, Section, Term, Subject, HighestMark) " +
"VALUES (@Session, @Class, @Seciton, @Term, @Subject, @HighestMark)";
using (SqlConnection conn = new SqlConnection(Properties.Settings.Default.TEST4))
{
using (SqlCommand cmdSQL = new SqlCommand(strSQL,conn))
{
conn.Open();
cmdSQL.Parameters.Add("@Session", SqlDbType.Int).Value = DropSession.selecteditem.value;
cmdSQL.Parameters.Add("@Class", SqlDbType.Int).Value = DropClass.selecteditem.value;
cmdSQL.Parameters.Add("@Section", SqlDbType.Int).Value = DropSection.selecteditem.value;
cmdSQL.Parameters.Add("@Term", SqlDbType.Int).Value = DropTerm.selecteditem.value;
cmdSQL.Parameters.Add("@Subject", SqlDbType.Int).Value = DropSubject.selecteditem.value;
cmdSQL.Parameters.Add("@HighestMark", SqlDbType.Int).Value = HighestMark.Text;
cmdSQL.ExecuteNonQuery();
}
}
ReloadGrid(); // call routine to refresh the grid.
}

编辑:向新表

添加行好的,我们要取顶部的值,然后处理网格的每一行,取带有复选框和"插入"的值。将数据放入新表中。

好的,代码看起来像这样:

protected void Button1_Click(object sender, EventArgs e)
{
string strSQL = "SELECT * FROM tblHotelsA WHERE ID = 0";
DataTable rstData = MyRst(strSQL);
foreach (GridViewRow gRow in GHotels.Rows)
{
CheckBox ckChecked = gRow.FindControl("ckSelected") as CheckBox;
if (ckChecked.Checked)
{
// this row was checked - add a new row
DataRow MyNewRow = rstData.NewRow();
MyNewRow["HotelName"] = txtHOtelName.Text;  // exmaple control 
MyNewRow["City"] = txtCity.Text; // example control above grid 
// values from grid row
// tempalted columns, we use find control
MyNewRow["FirstName"] = (gRow.FindControl("txtFirstName") as TextBox).Text;
MyNewRow["LastName"] = (gRow.FindControl("txtLastName") as TextBox).Text;
// if data bound column, then we use cells collection
MyNewRow["FavorateFood"] = gRow.Cells[5];
// etc. etc. 
rstData.Rows.Add(MyNewRow);
}
}
// done adding to table, write/save back to database.
using (SqlConnection conn = new SqlConnection(Properties.Settings.Default.TEST4))
{
using (SqlCommand cmdSQL = new SqlCommand(strSQL, conn))
{
SqlDataAdapter da = new SqlDataAdapter(cmdSQL);
SqlCommandBuilder daU = new SqlCommandBuilder(da);
cmdSQL.Connection.Open();
da.Update(rstData);
}
}
}

我也有这个辅助程序-我经常在所有地方使用它:

public DataTable MyRst(string strSQL)
{
DataTable rstData = new DataTable();
using (SqlConnection conn = new SqlConnection(Properties.Settings.Default.TEST4))
{
using (SqlCommand cmdSQL = new SqlCommand(strSQL, conn))
{
cmdSQL.Connection.Open();
rstData.Load(cmdSQL.ExecuteReader());
}
}
return rstData;
}

这里的概念是什么?

I pull a blank row (SELECT * from table where ID = 0).

这让我得到了数据库结构-从而避免了sql.

中的参数的BOATLOAD。这种方法还允许我向表中添加一行,并添加"many"行。然后对数据库执行一次更新,一次性写出(保存)所有行。因此,这再次减少了相当多的混乱代码。

最新更新