【发布时间】:2011-12-06 02:32:11
【问题描述】:
我想做一个按钮(C# winform):
用户控件中的代码:
public partial class UserControl1 : Button
{
string sqlstr;
[Description("SQL STRING")]
[DefaultValue(typeof(string), "")]
public string SqlStr
{
get { return sqlstr; }
set { sqlstr = value; }
}
private void button1_Click(object sender, EventArgs e)
// 如果我把它改成overide OnClick(EventArgs e) 问题依旧 //存在
{
base.OnClick(e);
String connstr = @"Provider=OraOLEDB.Oracle;data source=***;user id=***;password=***;";
OleDbConnection conn = new OleDbConnection(connstr);
string str = this.sqlstr;
try
{
conn.Open();
OleDbCommand cmd = new OleDbCommand(str, conn);
cmd.ExecuteNonQuery();
}
catch (Exception ee)
{
MessageBox.Show(ee.Message);
}
finally
{
conn.Close();
}
}
}
主框架中的代码:
this.btn_del = new mybutton.UserControl1();
this.btn_del.Click += new System.EventHandler(this.btn_del_Click);
......
private void btn_del_Click(object sender, EventArgs e)
{
string txtid =txt_id.Text;// a label called txt_id in my frame
string strsql = "delete from myTable where id='" + txtid + "'";
btn_del.SqlStr = strsql;
}
为什么主机有多个按钮时自定义按钮不起作用? (只有一个按钮接收到 SqlStr,其他按钮什么也不接收) 如果框架中有另一个按钮 私人无效btn_insert_Click(对象发送者,EventArgs e) { string txtid =txt_id.Text;// 在我的框架中一个名为 txt_id 的标签 string strsql = "插入 mytable (...)values (...)"; btn_insert.SqlStr = strsql; }
用户控件无法接收到SqlStr
【问题讨论】:
-
地铁?表格? WPF?银光? ASP.NET?单触?
-
你有一个 SQL 注入漏洞。
-
在 txt_id 文本框中输入
3' or 1=1; --会导致坏事发生 -
当一个框架中有多个按钮时,它如何具体不起作用?它是否报告错误?它是否执行了错误的 SQL?
-
目前还不清楚您希望 button1_Click 事件处理程序如何运行。您必须改写 OnClick。
标签: c# button user-controls