【发布时间】:2018-11-20 22:24:12
【问题描述】:
我在让我的删除功能在我的 ASP.net (C#) Web 应用程序中工作时遇到问题,我真的不知道下一步该去哪里。
在单击按钮时调用该函数,但好像Page_Load 方法完全忽略了该命令。我是新手,希望能得到一些帮助。
谢谢。
这里是Page_load、DisplayData 方法、Count 方法和通过按钮单击调用的delete 方法。
public partial class WebForm1 : System.Web.UI.Page
{
SqlConnection cn;
static int count = 1;
static int max = 2;
static String sqlQuery = "Select * from Footballer";
static bool firstTime = true;
protected void Page_Load(object sender, EventArgs e)
{
string str = "Data Source=(LocalDB)\\MSSQLLocalDB;AttachDbFilename=\"C:\\Users\\David\\Desktop\\WebApplication5\\WebApplication5\\App_Data\\Database2.mdf\";Integrated Security=True";
cn = new SqlConnection(str);
SqlCommand command = cn.CreateCommand();
cn.Open();
mycount();
if (firstTime == true)
{
displayData();
firstTime = false;
}
}
protected void mycount()
{ // count no of els in table
max = 0;
var cmd = cn.CreateCommand();
cmd.CommandText = sqlQuery;
var reader = cmd.ExecuteReader();
while (reader.Read()) max++;
reader.Close();
}
protected void displayData()
{
var cmd = cn.CreateCommand();
cmd.CommandText = sqlQuery;
var reader = cmd.ExecuteReader();
for (int i = 0; i < count; i++)
reader.Read();
TextBox1.Text = "" + reader[0];
TextBox2.Text = "" + reader[1];
TextBox5.Text = "" + reader[2];
TextBox6.Text = "" + reader[3];
TextBox7.Text = "" + reader[4];
TextBox8.Text = "" + reader[5];
reader.Close();
}
protected void deleteData()
{
var cmd = cn.CreateCommand();
string query = "DELETE FROM [Footballer] WHERE [PlayerName] = @name";
cmd.CommandText = query;
string name = TextBox4.Text;
cmd.Parameters.AddWithValue("@name", name);
cmd.ExecuteNonQuery();
}
}
【问题讨论】:
-
如果在deleteData()方法中设置了断点,是不是被命中了?
-
嗨,埃文,是的,我现在就在那里尝试过,它的方法没问题。问题是什么都没有发生,它没有从 sql 数据库中删除任何东西。就好像我根本没有按下按钮一样。
-
您已经证明它已到达您的 deleteData 方法。您是否确认您在 TextBox4.Text 中获得了有效值?并且该值与 [Footballer] 表中 [PlayerName] 的行值完全匹配?
-
@您是否尝试直接执行 sql 以确保我们在约束或其他方面没有任何问题?顺便说一句,您应该读取从 ExecuteNonQuery 中返回的值
-
我在任何地方都没有看到你实际打电话给
deleteData()这是从哪里调用的?
标签: c# sql asp.net sql-server