0 امتیاز

سلام به همگی، وقتتون به خیر

من یه procedure برای update اطلاعات table نوشتم (در sql server) و حالا میخوام اون رو در سی شارپ با استفاده از متد sql command اجرا کنم.

البته این کار رو برای insert  نوشتم وجواب گرفتم. کدشو میزارم لطفا بگین چه تغییراتی برای عمل update باید انجام بشه.

ممنون از همگی.

 class class_insert
    {
        public DataTable dt = new DataTable();
        public void insertTocustumer(string name, string family, string comp_name, string adress1, string adress2, string phon1, string phon2, string mobile1, string mobile2, string fax, string bank_accunte, int balance, string expention)
            {
             SqlConnection   con = new SqlConnection("Data Source=DESKTOP-5G4OJ61;Initial Catalog=testfactor;Integrated Security=True");
            con.Open();
                SqlDataAdapter adapter = new SqlDataAdapter();
                SqlCommand command = new SqlCommand("pcustomer",con);  // C
               command.Connection = con;
             //   command.Connection.Open();
                command.CommandType = CommandType.StoredProcedure;
             //   command.Parameters.Add("@customer_id", SqlDbType.Int).Value = id;
                command.Parameters.Add("@name", SqlDbType.NVarChar).Value = name;
                command.Parameters.Add("@family", SqlDbType.NVarChar).Value = family;
                command.Parameters.Add("@comp_name", SqlDbType.NChar).Value = comp_name;
                command.Parameters.Add("@adress1", SqlDbType.NVarChar).Value = adress1;
                command.Parameters.Add("@adress2", SqlDbType.NVarChar).Value = adress2;
                command.Parameters.Add("@phon1", SqlDbType.NChar).Value = phon1;
                command.Parameters.Add("@phon2", SqlDbType.NChar).Value = phon2;
                command.Parameters.Add("@mobile1", SqlDbType.NChar).Value = mobile1;
                command.Parameters.Add("@mobile2", SqlDbType.NChar).Value = mobile2;
                command.Parameters.Add("@fax", SqlDbType.NChar).Value = fax;
                
                command.Parameters.Add("@bank_accunte", SqlDbType.NChar).Value = bank_accunte;
                command.Parameters.Add("@balance", SqlDbType.Int).Value = balance;
                command.Parameters.Add("@expention", SqlDbType.NVarChar).Value = expention;
                adapter.SelectCommand = command;
                command.ExecuteNonQuery();
            con.Close();

2 پاسخ

+1 امتیاز

سلام

دوست عزیر الگوی صحیح رو براتون میفرستم از روی اون کدهاتونو اصلاح کنید

string updateString = @"update Categories set
                        CategoryName = 'Other'
                        where CategoryName = 'Miscellaneous'";
  
// 1. Instantiate a new command with command text only
SqlCommand cmd = new SqlCommand(updateString);
  
// 2. Set the Connection property
cmd.Connection = conn;
  
// 3. Call ExecuteNonQuery to send command
cmd.ExecuteNonQuery();

 

خیلی ممنون

لطف کردین

با این روش میشه این کد را توی یه تابع فراخوانی کرد که دارای مقادیر ورودی باشه؟؟ چون اطلاعات ویرایشی از یه فرم گرفته میشه(text box) ؟؟؟؟

مثل الگویه زیر

void fanction_update(string prmt1, string prmt2) t

}

string updateString = @"update Categories set

                 CategoryName = parmt1

                        where CategoryName = parmt2;

   

// 1. Instantiate a new command with command text only

SqlCommand cmd = new SqlCommand(updateString);

   

// 2. Set the Connection property

cmd.Connection = conn;

   

// 3. Call ExecuteNonQuery to send command

cmd.ExecuteNonQuery();

{

 

ویرایش شده توسط
توسط (104 امتیاز) 3
0 امتیاز

دوست عزیز برای اینکار نباید متد شما از نوع برگشتی باشه یعنی باید void باشه 

و اینکه در انجام عملیات اپدیت شما چه نوع عملیاتی میخایید انجام دهید که ورودی داشته باشه؟

 

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

بدین شکل اگه منظورتون رو درست فهمیده باشم

 

 private void insert()
        {
            SqlConnection conn = new SqlConnection("مسیر کانکشن");
            SqlCommand cmd = new SqlCommand("Insert Into tbllogin ([UserName])Values(@user)", conn);


            cmd.Parameters.AddWithValue("@user", textBox1.Text);
          


            conn.Open();
            cmd.ExecuteNonQuery();
            conn.Close();
        }
        void fanction_update()
        {

            SqlConnection conn = new SqlConnection("مسیر کانکشن");
            SqlCommand cmd = new SqlCommand("Update tbl Set [UserName]=@nam,[Password]=@tell Where ID="+ textbox1, conn);
            //یا میتونید از یه نوع دادها ی 
            //int EditID=0;
            //برای ویرایش استفاده کنید
            // SqlCommand cmd = new SqlCommand("Update tbl Set [UserName]=@nam,[Password]=@tell Where ID=" + EditID, conn);



            cmd.Parameters.AddWithValue("@nam", textBox2.Text);
            cmd.Parameters.AddWithValue("@tell", textBox3.Text);

            conn.Open();
            cmd.ExecuteNonQuery();
            conn.Close();
            insert();







        }

گیج شدم!!!

چرا باید متد درج استفاذه بشه؟ من فقط میخوام یه رکورد با یک ID مشخص رو آپدیت کنم

من یه stored procedure نوشتم برای update، و میخوام از اون استفاده کنم

اینم کدش

USE [testfactor]
GO
/****** Object:  StoredProcedure [dbo].[pupdatecustomer]    Script Date: 28/01/1397 06:35:21 ب.ظ ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER proc [dbo].[pupdatecustomer]
@name nvarchar(20),
@family nvarchar(20),
@comp_name nchar(20),
@adress1 nvarchar(50),
@adress2 nvarchar(50),
@phon1 nchar(11),
@phon2 nchar(11),
@mobile1 nchar(11),
@mobile2 nchar(11),
@fax nchar(11),
@bank_accunte nchar(20),
@balance int,
@expention nvarchar(30),
@customer_id int
AS
BEGIN
 update customer 
 set
  name=@name,family=@family,comp_name=@comp_name,adress1=@adress1,adress2=@adress2,phon1=@phon1,phon2=@phon2,mobile1=@mobile1,mobile2=@mobile2,fax=@fax,bank_accunte=@bank_accunte,balance=@balance,expention=@expention
  where
   customer_id=@customer_id
   
END

 

ویرایش شده توسط
توسط (104 امتیاز) 3

احتمالا من اشتبا برداشت کردم

"با این روش میشه این کد را توی یه تابع فراخوانی کرد که دارای مقادیر ورودی باشه؟؟ چون اطلاعات ویرایشی از یه فرم گرفته میشه(text box) ؟؟؟؟"

اگه منظورتون از مقادیر ورودی همون اپدیت هست فقط این کد کافیه

  SqlConnection conn = new SqlConnection("مسیر کانکشن");
           SqlCommand cmd = new SqlCommand("Update tbl Set [UserName]=@nam,[Password]=@tell Where ID="+ textbox1, conn);
           //یا میتونید از یه نوع دادها ی 
           //int EditID=0;  //اینو خارج از متد بزارید در صورتیکه برای اپدیت از خط  پایین استفاده کنید 
           //برای ویرایش استفاده کنید
           // SqlCommand cmd = new SqlCommand("Update tbl Set [UserName]=@nam,[Password]=@tell Where ID=" + EditID, conn);
 
 
 
           cmd.Parameters.AddWithValue("@nam", textBox2.Text);
           cmd.Parameters.AddWithValue("@tell", textBox3.Text);
 
           conn.Open();
           cmd.ExecuteNonQuery();
           conn.Close();
           insert();

 

توسط (7,164 امتیاز) 4 7 141

@name و @tell پارامترهای ورودی تابع میشه دیگه؟؟

مثل کد زیر


void fauction_updat (int @ID, string @name, string @ tell)
{
SqlConnection conn = new SqlConnection("مسیر کانکشن");
         SqlCommand cmd = new SqlCommand("Update tbl Set [UserName]=@nam,[Password]=@tell Where ID="+ textbox1, conn);
         //یا میتونید از یه نوع دادها ی 
         //int EditID=0;  //اینو خارج از متد بزارید در صورتیکه برای اپدیت از خط  پایین استفاده کنید 
         //برای ویرایش استفاده کنید
         // SqlCommand cmd = new SqlCommand("Update tbl Set [UserName]=@nam,[Password]=@tell Where ID=" + EditID, conn);
 
 
 
         cmd.Parameters.AddWithValue("@nam", textBox2.Text);
         cmd.Parameters.AddWithValue("@tell", textBox3.Text);
 
         conn.Open();
         cmd.ExecuteNonQuery();
         conn.Close();
         insert();
}
توسط (104 امتیاز) 3

بلی

   SqlCommand cmd = new SqlCommand("Update tbl Set [UserName]=@nam,[Password]=@1 Where ID="+ textbox1, conn);

بلی این موضوع اختیاریه اما در پروژه های بزرگ استاندار خاص خودشو داره
میتونی عدد بزاری

 

توسط (7,164 امتیاز) 4 7 141
خیلی ممنون

زحمت کشیدین، با همون  متد stored prosedurs جواب داد
ویرایش شده توسط
توسط (104 امتیاز) 3
سوال جدید

2,337 سوال

2,871 پاسخ

3,725 دیدگاه

3,924 کاربر

دسته بندی ها

...