ozzy_mra
شنبه 10 مهر 1389, 13:24 عصر
سلام
من تو بخش sql server سوال زیر رو پرسیدم
http://barnamenevis.org/forum/showthread.php?t=250682
تو برنامم برای اینزرت از یه sp استفاده کردم به شکل زیر
public void InsertNewKole(int oscode,string kCode, string kTitle, string kIjadDate, int kUserCreator, int kMahiat, int kVaziat)
{
try
{
SqlConnection objConnection = new SqlConnection();
objConnection.ConnectionString = ConfigurationManager.ConnectionStrings["shahed.Properties.Settings.Account_Str"].ConnectionString;
objConnection.Open();
SqlCommand insertCmd = new SqlCommand();
insertCmd.Connection = objConnection;
insertCmd.CommandText = "usp_InsertKole1";
insertCmd.CommandType = CommandType.StoredProcedure;
insertCmd.Parameters.AddWithValue("@code", oscode);
insertCmd.Parameters.AddWithValue("@kcode",kCode);
insertCmd.Parameters.AddWithValue("@ktitle",kTitle);
insertCmd.Parameters.AddWithValue("@kijaddate",kIjadDate);
insertCmd.Parameters.AddWithValue("@kusercreator",kUserCreator);
insertCmd.Parameters.AddWithValue("@kmahiat",kMahiat);
insertCmd.Parameters.AddWithValue("@kvaziat",kVaziat);
insertCmd.ExecuteNonQuery();
MessageBox.Show("اطلاعات با موفقیت در سرور ذخیره گردید");
objConnection.Close();
}
catch (Exception ex)
{
MessageBox.Show("خطا در کلاس ایجاد حساب کل جدید" + "\n" + "\n" + ex.ToString());
}
}
بعد برای تیبلی که قراره توش اینزرت بشه یه تریگر به شکل زیر تعریف کردم :
Create trigger utblKolTR on uTblKol
instead of insert
as
declare
@code decimal(18,3),
@kcode varchar(6),
@ktitle nvarchar(50),
@kijaddate varchar(10),
@kusercreator decimal(18,3),
@kmahiat int,
@kvaziat int
declare @code1 decimal(18,3)
select @code1 = max(KolSN) from uTblKol
declare @int int
select @int = FLOOR(@code1)
declare @ashar float
set @ashar= @code1 - @int
declare @newCode decimal(18,3)
set @newCode = @int + 1 + (@code *.001)
--exec usp_InsertKole @newCode,@kcode,@ktitle,@kijaddate,@kusercreator,@ kmahiat,@kvaziat
INSERT INTO uTblKol (KolSN,KolCode,KolTitle,InsertDate,InsertUser,Mahi atID,VaziatID)
VALUES
(@newCode,@kcode,@ktitle,@kijaddate,@kusercreator, @kmahiat,@kvaziat)
همه بدبختی من اینه که باید پارامتر هایی رو که به sp پاس دادم تو تریگرم هم شناخته بشه و بر اساس اونا عملیات لازم رو انجام بده و اطلعات رو به صورتی که من خواستم اینزرت کنه ولی نمی دونم چطور پارامترهام رو به تریگرم بشناسونم
اگه ممکنه راهنماییم کنید متشکرم
من تو بخش sql server سوال زیر رو پرسیدم
http://barnamenevis.org/forum/showthread.php?t=250682
تو برنامم برای اینزرت از یه sp استفاده کردم به شکل زیر
public void InsertNewKole(int oscode,string kCode, string kTitle, string kIjadDate, int kUserCreator, int kMahiat, int kVaziat)
{
try
{
SqlConnection objConnection = new SqlConnection();
objConnection.ConnectionString = ConfigurationManager.ConnectionStrings["shahed.Properties.Settings.Account_Str"].ConnectionString;
objConnection.Open();
SqlCommand insertCmd = new SqlCommand();
insertCmd.Connection = objConnection;
insertCmd.CommandText = "usp_InsertKole1";
insertCmd.CommandType = CommandType.StoredProcedure;
insertCmd.Parameters.AddWithValue("@code", oscode);
insertCmd.Parameters.AddWithValue("@kcode",kCode);
insertCmd.Parameters.AddWithValue("@ktitle",kTitle);
insertCmd.Parameters.AddWithValue("@kijaddate",kIjadDate);
insertCmd.Parameters.AddWithValue("@kusercreator",kUserCreator);
insertCmd.Parameters.AddWithValue("@kmahiat",kMahiat);
insertCmd.Parameters.AddWithValue("@kvaziat",kVaziat);
insertCmd.ExecuteNonQuery();
MessageBox.Show("اطلاعات با موفقیت در سرور ذخیره گردید");
objConnection.Close();
}
catch (Exception ex)
{
MessageBox.Show("خطا در کلاس ایجاد حساب کل جدید" + "\n" + "\n" + ex.ToString());
}
}
بعد برای تیبلی که قراره توش اینزرت بشه یه تریگر به شکل زیر تعریف کردم :
Create trigger utblKolTR on uTblKol
instead of insert
as
declare
@code decimal(18,3),
@kcode varchar(6),
@ktitle nvarchar(50),
@kijaddate varchar(10),
@kusercreator decimal(18,3),
@kmahiat int,
@kvaziat int
declare @code1 decimal(18,3)
select @code1 = max(KolSN) from uTblKol
declare @int int
select @int = FLOOR(@code1)
declare @ashar float
set @ashar= @code1 - @int
declare @newCode decimal(18,3)
set @newCode = @int + 1 + (@code *.001)
--exec usp_InsertKole @newCode,@kcode,@ktitle,@kijaddate,@kusercreator,@ kmahiat,@kvaziat
INSERT INTO uTblKol (KolSN,KolCode,KolTitle,InsertDate,InsertUser,Mahi atID,VaziatID)
VALUES
(@newCode,@kcode,@ktitle,@kijaddate,@kusercreator, @kmahiat,@kvaziat)
همه بدبختی من اینه که باید پارامتر هایی رو که به sp پاس دادم تو تریگرم هم شناخته بشه و بر اساس اونا عملیات لازم رو انجام بده و اطلعات رو به صورتی که من خواستم اینزرت کنه ولی نمی دونم چطور پارامترهام رو به تریگرم بشناسونم
اگه ممکنه راهنماییم کنید متشکرم