Язык: C #
Умение: Начинающий
Инструмент: Visual Studio 2010
Hello StackOverflow,
Я сделал хранимую процедуру для вставки данных в таблицу ...
Хранимая процедура работает нормально, когда я выполняю ее в обозревателе серверов и вставляет в эту таблицу ...
Но когда я вызываю этот хранимый процесс из своего кода, я получаю вывод "затронута 1 строка", но в таблицу не вставляются данные ...!
Я озадачен тем, что происходит.
private void btn_AssignTeacher_Click(object sender, EventArgs e)
{
bool result = false;
SqlCommand cmd = new SqlCommand("sprocInsert");
int teacherid = comboBox_teachername.SelectedIndex +1;
int coursesinfoid = comboBox_coursename.SelectedIndex+1;
int daysid = comboBox_day.SelectedIndex+1;
int slotsid = comboBox_slot.SelectedIndex+1;
cmd.Parameters.Add("@coursesinfoid", SqlDbType.Int).Value = coursesinfoid;
cmd.Parameters.Add("@daysid", SqlDbType.Int).Value = daysid;
cmd.Parameters.Add("@slotsid", SqlDbType.Int).Value = slotsid;
cmd.Parameters.Add("@teacherid", SqlDbType.Int).Value = teacherid;
result = AssignCoursesMgr.Insert(cmd);
if (result == true)
MessageBox.Show("teacher assign successfully");
}
class AssignCoursesManager
{
DBLayer DBworks;
public bool Insert(SqlCommand cmd)
{
DBworks = new DBLayer();
cmd.CommandType = System.Data.CommandType.StoredProcedure;
return DBworks.InsertData(cmd);
}
}
public bool InsertData(SqlCommand cmd)
{
int result = 0;
SqlConnection conn = CreateConnection(ConnectionString);
try
{
cmd.Connection = conn;
cmd.Connection.Open();
result = cmd.ExecuteNonQuery();
}
catch (SqlException exc)
{
MessageBox.Show(exc.Message);
}
finally
{
conn.Close();
cmd.Dispose();
}
if (result > 0)
return true;
else return false;
}
А вот и "sprocInsert"
ALTER PROCEDURE dbo.sprocInsert
(
@coursesinfoid int,
@teacherid int,
@daysid int,
@slotsid int
)
AS
INSERT INTO schedule (coursesinfoid,teacherid,daysid,slotsid)
VALUES(@coursesinfoid,@teacherid,@daysid,@slotsid)