نمایش نتایج 1 تا 20 از 20

نام تاپیک: مشکل در دستیابی به اطلاعات از طرق stored procedure

  1. #1
    کاربر دائمی آواتار mahtab.kamali
    تاریخ عضویت
    دی 1391
    محل زندگی
    زیر گنبد کبود
    پست
    117

    مشکل در دستیابی به اطلاعات از طرق stored procedure

    با سلام

    سمت بانک یک stored procedure با کوئری selectایجاد کرده ایم به این شکل :


    USE [d1]
    GO
    /****** Object: StoredProcedure [dbo].[Procedure1] Script Date: 04/13/2013 20:19:47 ******/
    SET ANSI_NULLS ON
    GO
    SET QUOTED_IDENTIFIER ON
    GO
    -- =============================================
    -- Author: Name
    -- Create date:
    -- Description:
    -- =============================================
    ALTER PROCEDURE [dbo].[Procedure1]
    -- Add the parameters for the stored procedure here
    @id int = 0,
    @name NVarChar = 0
    AS
    BEGIN
    -- SET NOCOUNT ON added to prevent extra result sets from
    -- interfering with SELECT statements.
    SET NOCOUNT ON;

    -- Insert statements for procedure here
    SELECT @id, @name
    END

    سمت برنامه هم با این دستورات می خواهیم دیتا گرید رو به
    stored procedureمتصل نماییم
    اما موقع اجرا چیزی درون دیتا گرید نشون داده نمی شه

    به نظر شما ایراد از چیست؟


    private void Form1_Load(object sender, EventArgs e)
    {
    DataTable dt = new DataTable();

    SqlConnection conn = new SqlConnection(@"Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirector y|\d1.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True");

    SqlCommand cmd = new SqlCommand("Procedure1", conn);

    cmd.CommandType = CommandType.StoredProcedure;

    cmd.Parameters.Add("@name", SqlDbType.NVarChar).Value = "%" + Name + "%";

    SqlDataAdapter da = new SqlDataAdapter(cmd);

    da.Fill(dt);

    dataGridView1.DataSource = da;

    }

  2. #2
    کاربر دائمی
    تاریخ عضویت
    تیر 1389
    محل زندگی
    به جبر روزگار تهران هستم.
    پست
    2,718

    نقل قول: مشکل در دستیابی به اطلاعات از طرق stored procedure

    سلام.
    sp که نوشتید اشتباه هست. کل عبارت رو پاک کنید و خودتون شروع به نوشتن sp کنید.
    یه sp که بخوای براساس name جستجو کنی به اینصورته:

    create proc SelectUser
    @name nvarchar(50)
    as
    select * from TblName where Name = @name
    go

    منظور از TblName همون نام جدول شماست.
    منظور از name@ هم پارامتر برای فیلدی هست که میخواید جستجو رو براساس اون انجام بدید.
    بعد از نوشتن sp باید اونو اجرا کنید (با دکمه قرمز رنگ ! ).

  3. #3
    کاربر دائمی آواتار mahtab.kamali
    تاریخ عضویت
    دی 1391
    محل زندگی
    زیر گنبد کبود
    پست
    117

    نقل قول: مشکل در دستیابی به اطلاعات از طرق stored procedure

    موقع اجرای کوئری ارور می ده
    عکس های ضمیمه عکس های ضمیمه
    • نوع فایل: jpg 2.JPG‏ (60.8 کیلوبایت, 44 دیدار)

  4. #4

    نقل قول: مشکل در دستیابی به اطلاعات از طرق stored procedure

    این خطا نشون میده که قبلا یم stored procedure

    به همین نام وجود داره

  5. #5
    کاربر دائمی
    تاریخ عضویت
    تیر 1389
    محل زندگی
    به جبر روزگار تهران هستم.
    پست
    2,718

    نقل قول: مشکل در دستیابی به اطلاعات از طرق stored procedure

    همونطور که دوستمون هم گفتن قبلا یه sp با همین نام ایجاد شده.
    یه اسم جدید برای sp انتخاب کنید و دوباره اجرا کنید. ( فقط کلمه selectuser رو تغییر بدید).

  6. #6

  7. #7
    کاربر دائمی آواتار mahtab.kamali
    تاریخ عضویت
    دی 1391
    محل زندگی
    زیر گنبد کبود
    پست
    117

    نقل قول: مشکل در دستیابی به اطلاعات از طرق stored procedure

    نقل قول نوشته شده توسط veniz2008 مشاهده تاپیک
    همونطور که دوستمون هم گفتن قبلا یه sp با همین نام ایجاد شده.
    یه اسم جدید برای sp انتخاب کنید و دوباره اجرا کنید. ( فقط کلمه selectuser رو تغییر بدید).
    ممنون از پاسختون
    مشکل stored procedur حل شد اما باز وضعیت برنامه فرق نکرد وچیزی توی دیتا گرید نشون نمی ده

  8. #8
    کاربر دائمی
    تاریخ عضویت
    تیر 1389
    محل زندگی
    به جبر روزگار تهران هستم.
    پست
    2,718

    نقل قول: مشکل در دستیابی به اطلاعات از طرق stored procedure

    کد سی شارپ رو اینطور بنویسید:
    private void Form1_Load(object sender, EventArgs e)
    {
    SqlConnection conn = new SqlConnection(@"Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirector y|\d1.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True");
    SqlDataAdapter da = new SqlDataAdapter("SpName",conn);
    da.SelectCommand.CommandType = CommandType.StoredProcedure;
    da.SelectCommand.Parameters.AddWithValue("@name", TxtName.Text.Trim());
    DataTable dt = new DataTable();
    da.Fill(dt);
    dataGridView1.DataSource = dt;
    }

    به جای کلمه SpName باید نام sp ای که ساختید رو بنویسید.

  9. #9

    نقل قول: مشکل در دستیابی به اطلاعات از طرق stored procedure

    اگه داری از این SP استفاده می کنی
    create proc SelectUser
    @name nvarchar(50)
    as
    select * from TblName where Name = @name

    go



    من توش like نمی بینم که شما به عنوان ورودی % رو هم اضافه می کنی

  10. #10
    کاربر دائمی آواتار mahtab.kamali
    تاریخ عضویت
    دی 1391
    محل زندگی
    زیر گنبد کبود
    پست
    117

    نقل قول: مشکل در دستیابی به اطلاعات از طرق stored procedure

    ممنون حل شد

    حالا اگه بخوام اون تکس باکس نباشه وهمه اطلاعات یک جدول بدون اعمال فیلتر هنگام لود فرم نشون داده بشه

    چه تغییراتی بایستی در سمت برنامه یا بانک بدهم
    عکس های ضمیمه عکس های ضمیمه
    • نوع فایل: jpg 4.JPG‏ (22.1 کیلوبایت, 42 دیدار)

  11. #11

    نقل قول: مشکل در دستیابی به اطلاعات از طرق stored procedure

    می تونی از همون sp استفاده کنی با ایت تفاوت که پارامتر خالی بفرستی

  12. #12
    کاربر دائمی
    تاریخ عضویت
    تیر 1389
    محل زندگی
    به جبر روزگار تهران هستم.
    پست
    2,718

    نقل قول: مشکل در دستیابی به اطلاعات از طرق stored procedure

    اگر میخواید بدون هیچ فیلتری تمام اطلاعات رو نمایش بدید باید شرط رو از sp حذف کنید. روی sp کلیک راست کنید و گزینه Modify رو بزنید.
    در پنجره باز شده از داخل کوئری عبارت where رو حذف کنید. (فقط کوئری رو بصورت زیر تغییر بدید) :
    select * from TblName

    بر روی ! کلیک کنید تا تغییرات ذخیره بشه. درون برنامه هم دیگه نیازی به ارسال پارامتر ندارید. پس خط زیر رو پاک کنید:
    da.SelectCommand.Parameters.AddWithValue("@name", TxtName.Text.Trim());

  13. #13
    کاربر دائمی آواتار mahtab.kamali
    تاریخ عضویت
    دی 1391
    محل زندگی
    زیر گنبد کبود
    پست
    117

    نقل قول: مشکل در دستیابی به اطلاعات از طرق stored procedure

    سلام

    من سمت بانک تغییرات رو انجام دادم



    توی برنامه هم اون خط رو حذفش کردم موقع اجرا این ارور رو میده
    عکس های ضمیمه عکس های ضمیمه
    • نوع فایل: jpg 5.JPG‏ (45.5 کیلوبایت, 40 دیدار)
    • نوع فایل: jpg 6.JPG‏ (22.8 کیلوبایت, 40 دیدار)

  14. #14
    کاربر دائمی
    تاریخ عضویت
    تیر 1389
    محل زندگی
    به جبر روزگار تهران هستم.
    پست
    2,718

    نقل قول: مشکل در دستیابی به اطلاعات از طرق stored procedure

    داخل sp اون خط که پارامتر رو تعریف کردید باید حذف بشه. یعنی :
    @name nvarchar(50)

    رو حذف کنید و با زدن ! تغییرات رو ذخیره کنید.

  15. #15
    کاربر دائمی آواتار mahtab.kamali
    تاریخ عضویت
    دی 1391
    محل زندگی
    زیر گنبد کبود
    پست
    117

    نقل قول: مشکل در دستیابی به اطلاعات از طرق stored procedure

    با سلام

    ممنونم از راهنمایی های دوستان مشکل کاملا حل شد

    حالا دو سوال دارم
    1 . برای هر یک از دستورات افزودن و پاک کردن رکورها در یک جدول بایستی یه stored procedureجداگانه براشون بنویسیم و حتمااین کار به تعداد جداول بایستی صورت بگیره؟

    2 . در سمت برنامه اگه بخواهیم یه کلاس برای دستورات بنویسیم به نحوی که در هر فرم دستورات تکرار نشه آیا امکان پذیر هست و به چه شکلی ؟

  16. #16
    کاربر دائمی
    تاریخ عضویت
    تیر 1389
    محل زندگی
    به جبر روزگار تهران هستم.
    پست
    2,718

    نقل قول: مشکل در دستیابی به اطلاعات از طرق stored procedure

    نقل قول نوشته شده توسط mahtab.kamali مشاهده تاپیک

    ممنونم از راهنمایی های دوستان مشکل کاملا حل شد
    گفته بودم که sp ها ساده و دوست داشتنی هستن.
    1 . برای هر یک از دستورات افزودن و پاک کردن رکورها در یک جدول بایستی یه stored procedureجداگانه براشون بنویسیم و حتمااین کار به تعداد جداول بایستی صورت بگیره؟
    بله. برای هر عمل و برای هر جدول بهتره که یک sp جداگانه بنویسید.
    2 . در سمت برنامه اگه بخواهیم یه کلاس برای دستورات بنویسیم به نحوی که در هر فرم دستورات تکرار نشه آیا امکان پذیر هست و به چه شکلی ؟
    بله امکان پذیر هست و بهترین راه هم همینه. دنبال برنامه نویسی چند لایه بگردید. بارها در سایت دربارش بحث شده. حجم کدنویسی رو خیلی کم میکنه (کدهای تکراری یک بار نوشته میشه).
    موفق باشید.

  17. #17
    کاربر دائمی آواتار mahtab.kamali
    تاریخ عضویت
    دی 1391
    محل زندگی
    زیر گنبد کبود
    پست
    117

    نقل قول: مشکل در دستیابی به اطلاعات از طرق stored procedure

    با سلام

    در ارتباط با stored procedure قصد داشتم با تعریف یک procedure واحد عمل حذف و اضافه و جستجو رو انجام بدم به این شکل که درسمت sql اینطور تعریف کرده ام


    USE [spdata]
    GO
    /****** Object: StoredProcedure [dbo].[spdata] Script Date: 04/14/2013 16:51:01 ******/
    SET ANSI_NULLS ON
    GO
    SET QUOTED_IDENTIFIER ON
    GO



    ALTER Procedure [dbo].[spdata]
    (
    --variable declareations
    @Action Varchar (10), --to perform operation according to string passed to this varible such as Insert,update,delete,select
    @id int=null, --id to perform specific task
    @Fname nvarchar(50) =null, -- for FirstName
    @MName nvarchar(50) =null, -- for MName
    @Lname nvarchar(50) =null -- for LastName -- for LastName

    )
    AS
    BEGIN
    SET NOCOUNT ON;

    If @Action='Insert'
    Begin
    Insert Into tina(FirstName,MName,LastName)values(@Fname,@MName ,@Lname)
    End

    else if @Action='Select'
    Begin
    select *from tina
    end

    else if @Action='Update'
    Begin
    update tina set FirstName=@Fname,MName=@MName,LastName=@Lname where id=@id
    End
    Else If @Action='delete'
    Begin
    delete from tina where id=@id
    end
    End


    ودر سمت برنامه اینطوری نوشته ام:

    SqlConnection con = new SqlConnection(strConnString);

    com = new SqlCommand();

    con.Open();

    com.Connection = con;

    com.CommandText = "spdata";

    com.CommandType = CommandType.StoredProcedure;

    com.Parameters.Add(new SqlParameter("@Action", SqlDbType.VarChar, 10));

    com.Parameters["@Action"].Value = "Select";

    sqlda = new SqlDataAdapter(com);

    ds = new DataSet();

    sqlda.Fill(ds);

    dataGridView1.DataSource = ds;


    اما با اینکه هیچ اروری نمیده دیتا گرید باز خالیه می شه بگین ایراد از چی می تونه باشه؟

  18. #18
    کاربر دائمی
    تاریخ عضویت
    تیر 1389
    محل زندگی
    به جبر روزگار تهران هستم.
    پست
    2,718

    نقل قول: مشکل در دستیابی به اطلاعات از طرق stored procedure

    سمت برنامه اینطور بنویسید :
    SqlConnection con = new SqlConnection(strConnString);
    SqlDataAdapter da = new SqlDataAdapter("spdata", con);
    da.SelectCommand.CommandType = CommandType.StoredProcedure;
    da.SelectCommand.Parameters.AddWithValue("@Action" ,"Select");
    DataTable dt = new DataTable();
    da.Fill(dt);
    datagridview1.DataSource = dt;

  19. #19
    کاربر دائمی آواتار mahtab.kamali
    تاریخ عضویت
    دی 1391
    محل زندگی
    زیر گنبد کبود
    پست
    117

    نقل قول: مشکل در دستیابی به اطلاعات از طرق stored procedure

    نقل قول نوشته شده توسط veniz2008 مشاهده تاپیک
    سمت برنامه اینطور بنویسید :
    SqlConnection con = new SqlConnection(strConnString);
    SqlDataAdapter da = new SqlDataAdapter("spdata", con);
    da.SelectCommand.CommandType = CommandType.StoredProcedure;
    da.SelectCommand.Parameters.AddWithValue("@Action" ,"Select");
    DataTable dt = new DataTable();
    da.Fill(dt);
    datagridview1.DataSource = dt;
    عالی بود درست شد
    به نظرتون این شیوه بهتره یا اینکه برای حذف و اضافه و جستجو procedure جدا نوشته بشه

  20. #20
    کاربر دائمی
    تاریخ عضویت
    تیر 1389
    محل زندگی
    به جبر روزگار تهران هستم.
    پست
    2,718

    نقل قول: مشکل در دستیابی به اطلاعات از طرق stored procedure

    نقل قول نوشته شده توسط mahtab.kamali مشاهده تاپیک
    عالی بود درست شد
    به نظرتون این شیوه بهتره یا اینکه برای حذف و اضافه و جستجو procedure جدا نوشته بشه
    این مورد خیلی قابل استفاده نیست مخصوصا در موجودیت های مختلف که فیلدهای متفاوتی دارند. باید یه لیست بلند بالا از پارامترها رو ذکر کنید و همه رو null بدید.
    در کل به نظرم خوانایی در این مورد پایینه و پیشنهاد هم نمیکنم از این روش استفاده کنید.

تاپیک های مشابه

  1. سوال: مشکل در صدا زدن بیش از یک stored procedure (حل شد)
    نوشته شده توسط desatir7316 در بخش PHP
    پاسخ: 1
    آخرین پست: سه شنبه 08 اسفند 1391, 14:26 عصر
  2. یه سوال در مورد وارد کردن اطلاعات فارسی و stored procedure
    نوشته شده توسط white fox در بخش SQL Server
    پاسخ: 6
    آخرین پست: شنبه 30 اردیبهشت 1385, 01:01 صبح
  3. مشکل فارسی نویسی در SQL از طریق Stored Procedure
    نوشته شده توسط sirwan در بخش ASP.NET Web Forms
    پاسخ: 9
    آخرین پست: شنبه 30 آبان 1383, 01:27 صبح
  4. مشکل در فشرده سازی اطلاعات با Rar
    نوشته شده توسط فریدی در بخش برنامه نویسی در Delphi
    پاسخ: 8
    آخرین پست: شنبه 02 آبان 1383, 21:46 عصر
  5. مشکل همزمانی دستیابی به داده ها
    نوشته شده توسط در بخش VB.NET
    پاسخ: 4
    آخرین پست: دوشنبه 31 شهریور 1382, 22:39 عصر

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •