с помощью Visual Studio 2008, C#хранимой процедуры вызова, странная ситуация, я столкнулся
В течение последних 2-х дней я столкнулся с проблемой, так что я думал, что я хотел бы спросить здесь. я это хранимая процедура в моей базе данных под названием StoredProcedure1
:
ALTER PROCEDURE dbo.StoredProcedure1
@ID int,
@Username varchar(10),
@Pass varchar(10),
@Status varchar(10)
AS
INSERT INTO tPasswords(ID, fUsername, fPassword, fStatus)
Values (@ID, @Username, @Pass, @Status)
RETURN
Я просто добавить строку в моей таблице.
Когда я выполняю процедуру из проводника сервера внутри визуальной студии, все работает плавно, и когда я вижу данные в моей базе данных, я вижу новую строку, которую я только что добавил.
Проблема в том, что я пытаюсь запустить процедуру внутри своей программы.
Так что для теста внутри пустой формы я создал кнопку и:
using System.Data.Sql;
using System.Data.SqlClient;
private void button1_Click(object sender, EventArgs e)
{
string a = "Andreas";
string b = "Andreas2";
string c = "Andreas3";
int _id = 10;
SqlConnection connection = new SqlConnection(
Properties.Settings.Default.dPasswordsConnectionString);
SqlCommand cmd = new SqlCommand(
"StoredProcedure1", connection);
connection.Open();
cmd.CommandType = CommandType.StoredProcedure;
cmd.CommandTimeout = 600;
cmd.Parameters.Add("@ID", _id);
cmd.Parameters.Add("@Username", a);
cmd.Parameters.Add("@Pass", b);
cmd.Parameters.Add("@Status", c);
int i = cmd.ExecuteNonQuery();
connection.Close();
}
При нажатии на эту кнопку, у меня нет каких-либо ошибок или что-нибудь, когда я нажимаю его в два раза приводит к ошибке о тот же первичный ключ, поэтому процедура работает.
Но когда я иду в свою базу данных, я не вижу, чтобы новые данные были вставлены.
Это моя проблема на самом деле, я не могу писать в свою базу данных из моей программы.
Какая строка подключения? Похоже, вы находитесь в транзакции, которая не была завершена. – btlog
Источник данных =. \ SQLEXPRESS; AttachDbFilename = | DataDirectory | \ dPasswords.mdf; Интегрированная безопасность = True; Пользовательский экземпляр = True " –
Пожалуйста, не префиксные заголовки с" C# "и т. Д. Это то, что теги для –