Проверьте успешность вставки в ASP.NET с помощью хранимой процедуры - PullRequest
0 голосов
/ 30 августа 2018

Я знаю, что это может быть старый вопрос, но я запутался в том, чтобы получить "число затронутых строк" с помощью хранимой процедуры.

Вот мой код:

public DataSet saveuser(string procedure, string username, string password)
{
    SqlConnection connection = new SqlConnection();

    SqlCommand command = new SqlCommand(procedure, connection);
    command.Parameters.AddWithValue("@username", username);
    command.Parameters.AddWithValue("@password", password);

    SqlAdapter adapter = new SqlAdapter(command);
    DataSet dataset = new DataSet();
    adapter.Fill(dataset);

    connection.Close();
    return dataset,
}

Я пробовал этот код:

int rowschanged = command.ExecuteNonQuery();

Это, кажется, помогло мне, но когда я проверял, вставка базы данных была дважды.

У вас есть идеи? Могу ли я получить количество затронутых строк с помощью SqlDataAdapter?

Ответы [ 2 ]

0 голосов
/ 30 августа 2018

Я не уверен, почему вы возвращаете DataSet любой способ здесь является решением, если вы используете DataSet

public DataSet saveuser(string procedure, string username, string password)
        {
            SqlConnection connection = new SqlConnection();
            SqlCommand command = new SqlCommand(procedure, connection);
            command.Parameters.AddWithValue("@username", username);
            command.Parameters.AddWithValue("@password", password);
            SqlDataAdapter adapter = new SqlDataAdapter(command);
            DataSet dataset = new DataSet();
            connection.Open();
            adapter.Fill(dataset);
            var count = dataset.Tables?[0].Rows.Count;
            connection.Close();
            return dataset;
        }

и если вы хотите использовать DataTable

public DataTable SaveuserwithDataTable(string procedure, string username, string password)
        {
            SqlConnection connection = new SqlConnection();
            SqlCommand command = new SqlCommand(procedure, connection);
            command.Parameters.AddWithValue("@username", username);
            command.Parameters.AddWithValue("@password", password);
            SqlDataAdapter adapter = new SqlDataAdapter(command);
            DataTable dt = new DataTable();
            connection.Open();
            adapter.Fill(dt);
            var count = dt.Rows.Count;
            connection.Close();
            return dt;
        }

Желаю этой помощи !!

0 голосов
/ 30 августа 2018

«Количество затронутых строк» ​​- это возвращение самого запроса, вы можете изменить свой SP таким образом, чтобы он возвращал 0, если он выполнен, или -1, если нет (могут быть любые другие значения, конечно, и вы будете необходимо выполнить какую-то проверку ошибок в коде SP)

...