function doStuff(obj){
openObj(obj);
}
function myMethod(val)
{
alert(val);
}
C#
<asp:DropDownList ID="DropDownList3" runat="server"
DataTextField="number" DataValueField="number"
AutoPostBack="True"
DataSourceID="SqlDataSource1">
</asp:DropDownList>
<asp:Button ID="Button1" runat="server" Text="delete" OnClick="Button1_Click" />
<asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:Bank databaseConnectionString %>" SelectCommand="SELECT [number] FROM [Account]"></asp:SqlDataSource>
答案 0 :(得分:0)
我认为你的Button点击代码是错误的,这将是一个回发所以它应该是(并且@nad提到你还需要执行实际的命令)
if (Page.IsPostBack)
{
SqlConnection conn = new SqlConnection("Data Source=FATIMAH;Initial Catalog=Bank database;Integrated Security=True");
String sql;
sql = "delete FROM Account where number ='" + DropDownList3.SelectedValue +"'";
SqlCommand comm = new SqlCommand(sql, conn);
comm.ExecuteNonQuery()
conn.Close();
}
https://msdn.microsoft.com/en-us/library/system.web.ui.page.ispostback(v=vs.110).aspx
答案 1 :(得分:0)
史蒂夫提到你需要使用comm.ExecuteNonQuery()
并需要打开连接
using (var conn = new SqlConnection("Data Source=FATIMAH;Initial Catalog=Bank database;Integrated Security=True"))
{
conn.Open();
var sql = "delete FROM Account where number ='" + DropDownList3.SelectedValue + "'";
using (var comm = new SqlCommand(sql, conn))
{
comm.ExecuteNonQuery();
}
conn.Close();
}
答案 2 :(得分:0)
您需要调用ExecuteNonQuery
方法来实际删除记录。
protected void Button1_Click(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
SqlConnection conn = new SqlConnection("Data Source=FATIMAH;Initial Catalog=Bank database;Integrated Security=True");
String sql;
sql = "delete FROM Account where number ='" + DropDownList3.SelectedValue +"'";
SqlCommand comm = new SqlCommand(sql, conn);
comm.ExecuteNonQuery()
conn.Close();
}
}
答案 3 :(得分:0)
代码有一些问题。
首先,Button1_Click事件可能只会在Post Post上被触发,但if语句仅在不是回发时才会运行。我完全失去了这个条件,但你可以简单地删除!
(不是)。
其次,您实际上从未打开连接或在创建命令后执行命令。它需要调用conn.Open和其中一个comm.Execute ...方法来实际执行任何操作。
此外,还有一个可能的安全性(SQL注入)问题,即将值连接到查询中。正确的方法是将变量作为参数传递给命令。它可能会阻止你的系统有一天成为头条新闻的主题。
最后有可能发生连接泄漏,因为conn变量未在using语句中分配,并且conn.Close()调用不在finally块中。 comm变量也应该被处理掉。
请改为尝试:
protected void Button1_Click(object sender, EventArgs e)
{
using (SqlConnection conn = new SqlConnection("Data Source=FATIMAH;Initial Catalog=Bank database;Integrated Security=True"))
{
conn.Open();
string sql = "delete Account where number = @number";
using (SqlCommand comm = new SqlCommand(sql, conn))
{
comm.Parameters.AddWithValue("@number", DropDownList3.SelectedValue);
comm.ExecuteNonQuery();
}
}
}