مرجع تخصصی برنامه نویسان

انجمن تخصصی برنامه نویسان فارسی زبان

کاربر سایت

jamaljaj

عضویت از 1394/03/17

sqlparameters

  • جمعه 24 اردیبهشت 1395
  • 15:24
تشکر میکنم

سلام استاد 

من میخوام برای ارسال پارامترها از sqlparameters   به صورت ارایه ای استفاده کنم ولی موقع ارسال به یه تابع دیگه پیغام میده که sqlparameters  نمی تونه خالی باشه . در صورتی که من اون رو پر کردم و به عنوان پارامتر ارسال کردم.  مشکل از کجاست ؟  

میشه روش ارسال sqlparameters  رو به صورت ارایه ای توضیح بدین ؟

ممنون

 

 

پاسخ های این پرسش

تعداد پاسخ ها : 6 پاسخ
کاربر سایت

ایمان مدائنی

عضویت از 1392/01/20

  • جمعه 24 اردیبهشت 1395
  • 15:29

کدهاتون رو قرار بدید تا بررسی کنیم

کاربر سایت

jamaljaj

عضویت از 1394/03/17

  • شنبه 25 اردیبهشت 1395
  • 02:12

استاد فایل پروژه رو اتچ کردم

 

فایل های ضمیمه

کاربر سایت

ایمان مدائنی

عضویت از 1392/01/20

  • شنبه 25 اردیبهشت 1395
  • 08:54

لطفا کدها رو از طریق ادیتور قرار دهید

با تبلت امکان دانلود و بررسی ندارم

کاربر سایت

jamaljaj

عضویت از 1394/03/17

  • شنبه 25 اردیبهشت 1395
  • 10:03
کلاس   BAL
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;

namespace TestPara
{
    public class BAL
    {
        private string name;
        private string family;
        private string address;


        public string Name
        {
            get { return this.name; }
            set { this.name = value; }
        }
        public  string Family
        {
            get { return this.family; }
            set { this.family = value; }

        }
        public string Address
        {
            get { return this.address; }
            set { this.address = value; }

        }

    }
}


کلاس   DAL


using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Data;
using System.Data.SqlClient;
namespace TestPara
{
    public class DAL
    {
        BAL bal = new BAL();
        clsrunProc proc = new clsrunProc();

        
       

        public DAL()
        {
        }


       public  bool InserTable()
        {
           SqlParameter[] pa = new SqlParameter[]
           {
               new  SqlParameter("@name" , bal.Name)  ,
               new  SqlParameter("@family"  , bal.Family)  ,
               new  SqlParameter ("@address" , bal.Address)
              

           };
           return proc.runproc("insertproc", pa);   
       }

    }
}




کلاس  CONECCTION 
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Data;
using System.Data.SqlClient;
namespace TestPara
{
    public class SqlCon
    {
        public SqlConnection con = null;
        public SqlConnection opencon()
        {
            con = new SqlConnection("Data Source=.;Initial Catalog=DbTestParameters;Integrated Security=True");
            con.Open();
            return con;

        }
        public void closecon()
        {
            if (con != null)
            {

                if (con.State == ConnectionState.Open)
                    con.Close();
            }

        }//end finct



    }
}



کلاس  اجرای تابع   insert   


using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Data;
using System.Data.SqlClient;
namespace TestPara
{
    public class clsrunProc
    {

        SqlCommand  com ;
        SqlCon   con = new SqlCon ();
            
        public  clsrunProc()
        {
            com = new SqlCommand ();
            com.Connection = con.opencon();
        

    }

        public  bool  runproc (string procname , SqlParameter[] pa)
        { 
            com.CommandText =procname;
            com.CommandType = CommandType.StoredProcedure;
            com.Parameters.Add(pa);
            com.ExecuteNonQuery();
            con.closecon();
            return true;
        
        }

    
}
}

 

کاربر سایت

ایمان مدائنی

عضویت از 1392/01/20

  • شنبه 25 اردیبهشت 1395
  • 10:44

در متد InsertTable پارامتر ها را در ورودی بگیرید و مقدار دهی کنید ببینید مشکل برطرف میشه

کاربر سایت

jamaljaj

عضویت از 1394/03/17

  • شنبه 25 اردیبهشت 1395
  • 14:47
public  void InserTable()
        {
            SqlCommand com = new SqlCommand();
            SqlCon con = new SqlCon();
            com.CommandText = "insertparam";
            com.Connection = con.opencon();
            com.CommandType = CommandType.StoredProcedure;

        
            SqlParameter[] pa =
            {
                new  SqlParameter("@name" ,"نام"),  
                new  SqlParameter("@family"  , "فامیلی")  ,
                new  SqlParameter ("@address" ,"آدرس") 


            };

            foreach (SqlParameter p in pa)
            {
                com.Parameters.Add(p);
            }
        
        
          
           com.ExecuteNonQuery();
            con.closecon();
        
        



         
          // return proc.runproc("insertproc", pa);   
       }

استاد  مشکل از کلاس bal  

وقتی از متغیرهای این کلاس استفاده میکنم هیچ مقداری بر نمیگردونن.  ولی کد رو به صورت بالا نوشتم و مقدایر رو به صورت دستی وارد کردم درج انجام میشه.

کاربرانی که از این پست تشکر کرده اند

هیچ کاربری تا کنون از این پست تشکر نکرده است

اگر نیاز به یک مشاور در زمینه طراحی سایت ، برنامه نویسی و بازاریابی الکترونیکی دارید

با ما تماس بگیرید تا در این مسیر همراهتان باشیم :)