#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
Хранимая процедура:
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, Рад, это помогло