View Full Version : سوال: نحوه نوشتن یک پروسیجر جهت درج در جدولی که یک ستون identity دارد بوسیله linq و نحوه کاربرد آن asp.net
  
mustafaehsani
شنبه 01 شهریور 1393, 12: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, 15:28 عصر
ستونی که identity هستو توی اینسرت مقدار دهی نکن.خودش مقدار میگیره
mustafaehsani
شنبه 01 شهریور 1393, 15:50 عصر
ستونی که identity هستو توی اینسرت مقدار دهی نکن.خودش مقدار میگیره
یعنی اصلا توی insert نیارمش یا فقط مقدار نداشته باشه
iceweek
شنبه 01 شهریور 1393, 16:08 عصر
یعنی اصلا توی insert نیارمش یا فقط مقدار نداشته باشه
اصلا ننویسش.انگار همچین ستونی نداری.
mustafaehsani
شنبه 01 شهریور 1393, 16: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, 16: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 = "کد وارد شده تکراری می باشد";
        }
    }
 
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.