Почему моя база данных SQL Server не сохраняет данные с помощью процедуры — C#

#c# #sql #sql-server

#c# #sql #sql-server

Вопрос:

Я пытаюсь создать процедуру и вызывать ее, когда мне нужно вставить некоторые данные.

Когда я запускаю приложение и нажимаю «Сохранить», приложение не отвечает в течение как минимум 15 секунд, прежде чем вернуться к нормальному состоянию. Но данные не сохраняются.

Я создал тестовую процедуру и некоторые тестовые функции для ее тестирования.

Строка подключения:

 public static string Cn = 
       "Data Source = THIAGO\SERVIDORSQL; Initial Catalog = DBClinica; Integrated Security = true";
 

Код уровня данных для вставки тестовых данных:

 public string Adicionar_Teste(Dados_Pacientes dados_Pacientes)
{
    string resp = "";

    SqlConnection sqlConnection = new SqlConnection();

    try
    {
        sqlConnection.ConnectionString = Conexao.Cn;//cn is the SQL DATABASE path
        sqlConnection.Open();

        // SQL command
        SqlCommand sqlCmd = new SqlCommand();
        sqlCmd.Connection = sqlConnection;
        sqlCmd.CommandText = "ProcAdicionar_Teste";
        sqlCmd.CommandType = CommandType.StoredProcedure;

        SqlParameter parTeste = new SqlParameter();
        parTeste.ParameterName = "@Teste";
        parTeste.SqlDbType = SqlDbType.VarChar;
        parTeste.Size = 10;
        parTeste.Value = dados_Pacientes.Nome;
        sqlCmd.Parameters.Add(parTeste);
    }
    catch (Exception ex)
    {
        return resp = ex.Message;
    }
    finally
    {
        if (sqlConnection.State == ConnectionState.Open) 
            sqlConnection.Close();
    }

    return resp;
}
 

Бизнес-уровень:

 public static string AdicionarTeste(string teste)
{
    Dados_Pacientes dados = new Dados_Pacientes();
    dados.Nome = teste;

    return dados.Adicionar_Teste(dados);
}
 

Метод формы вызывается, когда пользователь нажимает «сохранить»:

 private void AdicionarTeste()
{
    string x = TextBoxNomeDoPaciente.Text;
    Negocios_Pacientes.AdicionarTeste(x);
}
 

Имя и путь SQL Server:

и

Структура базы данных SQL Server

Хранимая процедура:

 ALTER PROCEDURE [dbo].[procAdicionar_Teste]
    @Teste VARCHAR(10)
AS
    INSERT INTO Teste (Teste) 
    VALUES (@Teste)
 

Комментарии:

1. Вы получаете сообщение об ошибке?

2. Нет, просто завершите работу приложения и вернитесь к нормальной жизни

3. Сбой или просто пауза?

4. Извините, но что такое SP-код?

5. Вы не вызываете метод для фактического контакта с базой данных? Возможно, вы хотите добавить sqlCmd.ExecuteNonQuery после добавления параметра?

Ответ №1:

Вы не выполняете команду. Вам нужно добавить инструкцию ниже в конце блока try.

 sqlCmd.ExecuteNonQuery();
 

Комментарии:

1. БОЖЕ. Спасибо! Я искал это в течение 3 дней.

2. @EverytimeIdid, Рад, это помогло