PDA

View Full Version : سوال: نحوه نوشتن یک پروسیجر جهت درج در جدولی که یک ستون identity دارد بوسیله linq و نحوه کاربرد آن asp.net



mustafaehsani
شنبه 01 شهریور 1393, 11:34 صبح
1- این کد برای پروسیجر درسته؟؟؟؟؟؟؟؟؟؟؟؟
SbcID ستون identity هست



SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

ALTER PROCEDURE [dbo].[insert_sbc]
@SbcID int,
@StIID nchar(10),
@SelCID int


AS
insert into dbo.SyBeCr(SbcID,StIID, SelCID) values(@@IDENTITY,@StIID,@SelCID)

RETURN


2- نحوه استفاده اون در asp.net بوسیله linq چطوریه؟؟؟؟؟؟


db.insert_sbc(SbcID: ????????????, StIID: lbl_user.Text, SelCID: y);


3- این error چیه؟؟؟؟؟؟؟؟

122569

iceweek
شنبه 01 شهریور 1393, 14:28 عصر
ستونی که identity هستو توی اینسرت مقدار دهی نکن.خودش مقدار میگیره

mustafaehsani
شنبه 01 شهریور 1393, 14:50 عصر
ستونی که identity هستو توی اینسرت مقدار دهی نکن.خودش مقدار میگیره

یعنی اصلا توی insert نیارمش یا فقط مقدار نداشته باشه

iceweek
شنبه 01 شهریور 1393, 15:08 عصر
یعنی اصلا توی insert نیارمش یا فقط مقدار نداشته باشه

اصلا ننویسش.انگار همچین ستونی نداری.

mustafaehsani
شنبه 01 شهریور 1393, 15:13 عصر
1- پروسیجر به اینصورت نوشتم


SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

ALTER PROCEDURE [dbo].[insert_sbc]

@StIID nchar(10),
@SelCID int


AS
insert into dbo.SyBeCr(StIID, SelCID) values(@StIID,@SelCID)

RETURN


2- به اینصورت هم ازش استفاده کردم


db.insert_sbc(StIID: lbl_user.Text, SelCID: y);


3- اما این error میده چرا؟؟؟؟؟؟

122574

mustafaehsani
شنبه 01 شهریور 1393, 15:18 عصر
اینم تمام کد مربوط به button

protected void btn_insert_Click(object sender, EventArgs e)
{
int y = int.Parse(txt_CID.Text);
DataClassesDataContext db = new DataClassesDataContext();
var sea = (from hbk in db.Hb_KardaniPs
where hbk.CreID == y
select hbk);
if (sea.Any())
{
var seb = (from sb in db.SyBeCrs
where sb.StIID == lbl_user.Text
select sb);
if (seb.Any())
{
var sec = (from sb in db.SyBeCrs
where sb.StIID == lbl_user.Text
select sb.SelCID).Single();
var sed = (from sb in db.SyBeCrs
where sb.StIID == lbl_user.Text
join crd in db.Credits on sb.SelCID equals crd.CID
select crd.Unit).Sum();
if (sec == y)
{
string message = "alert('کد وارد شده تکراری است')";
ScriptManager.RegisterClientScriptBlock((sender as Control), this.GetType(), "alert", message, true);
lbl_error.Visible = true;
lbl_error.Text = "کد وارد شده تکراری می باشد";
}

else if((sed + y) > 20)
{
string message = "alert('شما مجاز به انتخاب تا سقف 20 واحد می باشید')";
ScriptManager.RegisterClientScriptBlock((sender as Control), this.GetType(), "alert", message, true);
lbl_error.Visible = true;
lbl_error.Text = "شما مجاز به انتخاب تا سقف 20 واحد می باشید";
}
}
else
{
db.insert_sbc(StIID: lbl_user.Text, SelCID: y);
string message = "alert('ثبت شد')";
ScriptManager.RegisterClientScriptBlock((sender as Control), this.GetType(), "alert", message, true);
lbl_ok.Visible = true;
lbl_ok.Text = "ثبت شد";
}
}
else
{
string message = "alert('کد وارد شده اشتباه است')";
ScriptManager.RegisterClientScriptBlock((sender as Control), this.GetType(), "alert", message, true);
lbl_error.Visible = true;
lbl_error.Text = "کد وارد شده تکراری می باشد";
}
}