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();







        }

بلی

   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,920 کاربر

دسته بندی ها

...