C # SQL Web Application - мое веб-приложение не будет выполнять необходимое обновление / удаление при вызове метода - PullRequest
0 голосов
/ 20 ноября 2018

Я буквально в тупик. Я провел два дня, работая над этим. Я пробовал прокручивать интернет, но, похоже, ничего из того, что я пробовал, не работало, как блоки try / catch, используя и т. Д.

Так что вот так ..

У меня есть веб-приложение asp c #, которое подключено к базе данных sql, которую я написал в Visual Studio 'Database.mdf'.

База данных содержит несколько футболистов и их данные, я хочу иметь возможность обновлять и удалять эти данные, однако мои команды sql не вступают в силу (я новичок в этом, так что это, вероятно, что-то нелепо простое для большинства Вы, но тем не менее)

У меня есть несколько кнопок, с помощью которых я сортирую данные на экране по порядку. Они отлично работают, я просто использую для этого статическую переменную. Однако методы, которые я написал для команд SQL, не работают для меня. Методы также вызываются на Button_Click, но в случае Update / Delete ничего не меняется, это как если бы SQL-запрос никогда не обновлял базу данных

Пожалуйста, если вы знаете, как я могу это исправить, дайте мне знать. Моя голова жареная.

Вот несколько методов, включая отображение данных:

   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);
        cn.Open();
        mycount();
        displayData();
    //    updateData();
    //    deleteData();


    }



    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 updateData()
{
    var cmd = cn.CreateCommand();
    string query = "UPDATE [Footballer] SET [Appearances] = @appear , [NumberOfGoals] = @goals Where [PlayerName] = @name ";
    cmd.CommandText = query;

    int appear = int.Parse(TextBox6.Text);
    int goals = int.Parse(TextBox8.Text);
    string name = TextBox1.Text;


     cmd.Parameters.AddWithValue("@Player_ID", name);
     cmd.Parameters.AddWithValue("@app", appear);
     cmd.Parameters.AddWithValue("@goals", goals);


    cmd.ExecuteNonQuery();

}


protected void deleteData()
{
    string searchName = TextBox4.Text;
    TextBox1.Text = "Deleted";
    TextBox2.Text = "Deleted";
    TextBox5.Text = "Deleted";
    TextBox6.Text = "Deleted";
    TextBox7.Text = "Deleted";
    TextBox8.Text = "Deleted";
    var cmd = cn.CreateCommand();
    string query = "Delete from [Footballer] where [PlayerName] = @PlayerName_ID";

    cmd.CommandText = query;
    cmd.Parameters.AddWithValue("@PlayerName_ID", searchName);

    cmd.ExecuteNonQuery();

}

Вот экран того, что я получил визуально, если это поможет:

Gui View

1 Ответ

0 голосов
/ 20 ноября 2018

Скорее всего, потому что вы не совершаете транзакцию. Здесь есть пример https://docs.microsoft.com/en-us/dotnet/api/system.data.sqlclient.sqltransaction.commit

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...