积极答复者
如何用C#创建Button并使其对鼠标单击作出响应

问题
-
以下代码想通过后台创建三个控件:一个文本框、一个下拉列表、一个按钮,当鼠标单击按钮时,文本框和下拉列表的内容保存到数据库中。可是,内容似乎未保存到数据库中,按钮似乎未起作用,
不如为何,请各位高手指教!
public partial class NewTelNum : System.Web.UI.Page
{string varFromTextbox,varFromDropdownlist,varTableName;
protected void Page_Load(object sender, EventArgs e)
{
base.OnInit(e);
//动态创建文本框,用于填入电话号码
TextBox ttbNewTel01 = new TextBox();
this.Form.Controls.Add(ttbNewTel01);
varFromTextbox = ttbNewTel01.Text;//动态创建下拉列表,用于选择电话号码的类别,如:工作电话、移动电话、传真等
DropDownList dropNewTelClass01=new DropDownList();
this.Form.Controls.Add(dropNewTelClass01);
OleDbCommand commDbabTelClass = new OleDbCommand(strSqlTelClass, connDbab);OleDbDataReader dataReader = commDbabTelClass.ExecuteReader();
string varTelClass = "";
while (dataReader.Read())
{
varTelClass = (string)dataReader[0];
dropNewTelClass01.Items.Add(varTelClass);
}
varFromDropdownlist = dropNewTelClass01.SelectedIndex.ToString();//动态创建按钮,用于将电话号码及类别插入数据库中
Button btnNewTelOK01 = new Button();
btnNewTelOK01.Text = "保存";
this.Form.Controls.Add(btnNewTelOK01);
}
protected void btnNewTelOK01(object sender, EventArgs e)
{
string strConn = "Provider=Microsoft.Jet.OleDb.4.0;"; //连接数据库字符串
strConn += @"Data source=C:\ChhAtWin\web\AddressBook\AddressBook\App_Data\AddressBookDB.mdb";OleDbConnection connDbab = new OleDbConnection(strConn); //连接数据库
connDbab.Open();
string strSqlIns = "INSERT INTO " + varTableName + "(TelNum,TelClass) VALUES('" + varFromTextbox + "','" + varFromDropdownlist + "')";
OleDbCommand commDbabTelNumTable = new OleDbCommand(strSqlIns, connDbab);
commDbabTelNumTable.ExecuteNonQuery();
connDbab.Close();
}
}
答案
-
dear
1.请先确认按下按钮后能正确的触发事件,在btnNewTelOK01方法里设中断点看看,若无法进入中段点,你应该加入Click事件
Button btnNewTelOK01 = new Button(); btnNewTelOK01.Text = "保存"; btnNewTelOK01.Click += new EventHandler(btnNewTelOK01_Click); this.Controls.Add(btnNewTelOK01); void btnNewTelOK01_Click(object sender, EventArgs e) { string strConn = "Provider=Microsoft.Jet.OleDb.4.0;"; //连接数据库字符串 strConn += @"Data source=C:\ChhAtWin\web\AddressBook\AddressBook\App_Data\AddressBookDB.mdb"; OleDbConnection connDbab = new OleDbConnection(strConn); //连接数据库 connDbab.Open(); string strSqlIns = "INSERT INTO " + varTableName + "(TelNum,TelClass) VALUES('" + varFromTextbox + "','" + varFromDropdownlist + "')"; OleDbCommand commDbabTelNumTable = new OleDbCommand(strSqlIns, connDbab); commDbabTelNumTable.ExecuteNonQuery(); connDbab.Close(); }
秘訣無它,唯勤而已 http://www.dotblogs.com.tw/yc421206/- 已标记为答案 Jackie-SunModerator 2011年8月21日 4:47
-
你好,我想应该是你只是在后台加上了以上代码,而忘记了在Button btnNewTelOK01 的属性上写上Click事件吧 如果是这样的话,请在btnNewTelOK01 的属性里将Click事件的值设置为btnNewTelOK01_Click 然后保存,再run一下,看看有没有问题。
谢谢你的支持。
Jackie Sun [MSFT]
MSDN Community Support | Feedback to us
Get or Request Code Sample from Microsoft
Please remember to mark the replies as answers if they help and unmark them if they provide no help.
- 已标记为答案 Jackie-SunModerator 2011年8月21日 4:47
全部回复
-
dear
1.请先确认按下按钮后能正确的触发事件,在btnNewTelOK01方法里设中断点看看,若无法进入中段点,你应该加入Click事件
Button btnNewTelOK01 = new Button(); btnNewTelOK01.Text = "保存"; btnNewTelOK01.Click += new EventHandler(btnNewTelOK01_Click); this.Controls.Add(btnNewTelOK01); void btnNewTelOK01_Click(object sender, EventArgs e) { string strConn = "Provider=Microsoft.Jet.OleDb.4.0;"; //连接数据库字符串 strConn += @"Data source=C:\ChhAtWin\web\AddressBook\AddressBook\App_Data\AddressBookDB.mdb"; OleDbConnection connDbab = new OleDbConnection(strConn); //连接数据库 connDbab.Open(); string strSqlIns = "INSERT INTO " + varTableName + "(TelNum,TelClass) VALUES('" + varFromTextbox + "','" + varFromDropdownlist + "')"; OleDbCommand commDbabTelNumTable = new OleDbCommand(strSqlIns, connDbab); commDbabTelNumTable.ExecuteNonQuery(); connDbab.Close(); }
秘訣無它,唯勤而已 http://www.dotblogs.com.tw/yc421206/- 已标记为答案 Jackie-SunModerator 2011年8月21日 4:47
-
=.=!!
不是已经贴给您了吗
btnNewTelOK01.Click += new EventHandler(btnNewTelOK01_Click);
void btnNewTelOK01_Click(object sender, EventArgs e) { string strConn = "Provider=Microsoft.Jet.OleDb.4.0;"; //连接数据库字符串 strConn += @"Data source=C:\ChhAtWin\web\AddressBook\AddressBook\App_Data\AddressBookDB.mdb"; OleDbConnection connDbab = new OleDbConnection(strConn); //连接数据库 connDbab.Open(); string strSqlIns = "INSERT INTO " + varTableName + "(TelNum,TelClass) VALUES('" + varFromTextbox + "','" + varFromDropdownlist + "')"; OleDbCommand commDbabTelNumTable = new OleDbCommand(strSqlIns, connDbab); commDbabTelNumTable.ExecuteNonQuery(); connDbab.Close(); }
秘訣無它,唯勤而已 http://www.dotblogs.com.tw/yc421206/ -
你好,我想应该是你只是在后台加上了以上代码,而忘记了在Button btnNewTelOK01 的属性上写上Click事件吧 如果是这样的话,请在btnNewTelOK01 的属性里将Click事件的值设置为btnNewTelOK01_Click 然后保存,再run一下,看看有没有问题。
谢谢你的支持。
Jackie Sun [MSFT]
MSDN Community Support | Feedback to us
Get or Request Code Sample from Microsoft
Please remember to mark the replies as answers if they help and unmark them if they provide no help.
- 已标记为答案 Jackie-SunModerator 2011年8月21日 4:47