PDA

View Full Version : update یک جدول در ADO.net



Maryam IT
یک شنبه 26 آذر 1391, 14:15 عصر
تو رو خدا یکی به من بگه چرا قسمت LoadALL() خطا میده.
اون قسمت open خطا میده
چیکار کنم؟
این کدا رو واسه update نوشتم
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Data.SqlClient;
using System.Data.Common;
using System.Collections;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;


namespace Agreement
{

public partial class Form1 : Form
{

SqlConnection my_cn = new SqlConnection();
SqlDataAdapter dAdapter = new SqlDataAdapter();
SqlCommand scm = new SqlCommand();
DataSet dSet = new DataSet();
ArrayList arr = new ArrayList();


public Form1()
{
InitializeComponent();
}

public void Connect()
{

SqlConnection my_cn = new SqlConnection("server=(local);database=corporation1;Integrated Security=True");
}
private DataSet LoadAll()
{
Connect();
scm.CommandText = "select * from Agreement";
scm.Connection = my_cn;
dAdapter.SelectCommand = scm;
my_cn.Open();
dAdapter.Fill(dSet, "Agreement");
my_cn.Close();
return dSet;
}


private void Form1_Load(object sender, EventArgs e)
{
LoadAll();
dataGrid1.DataSource = dSet;
dataGrid1.DataMember = "Agreement";

}
private void Update(SqlCommand scm)
{
Connect();
scm.Connection = my_cn;
my_cn.Open();
scm.ExecuteNonQuery();
my_cn.Close();
}

private void dataGrid1_Navigate(object sender, NavigateEventArgs ne)
{

}

private void button1_Click(object sender, EventArgs e)
{
arr.Add(textBox1.Text);
arr.Add(textBox2.Text);
arr.Add(textBox3.Text);
arr.Add(textBox4.Text);
arr.Add(textBox5.Text);
arr.Add(textBox6.Text);
scm.CommandText = "Update set RegistrantID=@Reg_ID, HabitationDate=@Habit_Date, LeaveDate=@Leave_Date, ContinuationAmount=@Cont_Amount, IncreaseCostPercent=@Inc_Cost Where AgreementID=@Agree_ID";
scm.Parameters.Clear();
scm.Parameters.Add("@Reg_ID", SqlDbType.Int).Value = int.Parse(arr[0].ToString());
scm.Parameters.Add("@Habit_Date", SqlDbType.DateTime).Value = DateTime.Parse(arr[1].ToString());
scm.Parameters.Add("@Leave_Date", SqlDbType.DateTime).Value = DateTime.Parse(arr[2].ToString());
scm.Parameters.Add("@Cont_Amount", SqlDbType.Int).Value = int.Parse(arr[3].ToString());
scm.Parameters.Add("@Inc_Cost", SqlDbType.Int).Value = int.Parse(arr[4].ToString());
scm.Parameters.Add("@Agree_ID", SqlDbType.Int).Value = int.Parse(arr[5].ToString());

Update(scm);
LoadAll();
dataGrid1.DataSource = dSet;
dataGrid1.DataMember = "Agreement";
}
}
}

alihassanabadi
یک شنبه 26 آذر 1391, 15:34 عصر
سلام
فکر کنم کانکشن استرینگت مورد داره corporation 1 بنویس
corporation1
البته متن خطا رو بزار و بگو به کدوم خط گیر میده

Maryam IT
یک شنبه 26 آذر 1391, 15:40 عصر
سلام
خطا قبلیه درست شد
الان اون قسمت scm.ExecuteNoneQuery()
خطا میده
متد update
خط 3
برنامه اجرا میشه فرم هم میاد
وقتی اطلاعات رو وارد میکنم و update رو میزنم برنامه break میشه ولی هیچی نمینویسه که چرا

Maryam IT
یک شنبه 26 آذر 1391, 15:45 عصر
بله درسته همون connection String خطا میداد ولی الان دیگه واسه چی خطا میده؟

alihassanabadi
یک شنبه 26 آذر 1391, 15:45 عصر
مگه میشه خطا رو نگه
وقتی میگید متد update خط 3 یعنی این


my_cn.Open();

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

Maryam IT
یک شنبه 26 آذر 1391, 15:49 عصر
نه خط3 میشه scm.ExecuteNonQuery();
فقط یه فلش سبز میاد کنارش

alihassanabadi
یک شنبه 26 آذر 1391, 15:55 عصر
نه خط3 میشه scm.ExecuteNonQuery();:متعجب:
اونکه خط 4 میشه
ظاهرا سورس کدت درسته ولی فقط فلش سبز میاد نمیشه اینجوری راهنمایی کرد
ولی اگه میتونید راهکار رو تغییر بدید شاید درست شد یعنی یه جور دیگه کد بزن
ببین نوع داده هایی که وارد میکنی با نو فیلدهات مطابقت دارند در هر صورت باید متن خطا رو هم بگه

Maryam IT
یک شنبه 26 آذر 1391, 16:00 عصر
پس چرا واسه من نوشته خط 3؟:لبخند:
من جور دیگه بلد نیستم!
چه جوری؟
همینم با هزار بدبختی نوشتم!فردا باید تحویل بدم!
شما راه دیگه ای بلدی؟:لبخند:

alihassanabadi
یک شنبه 26 آذر 1391, 16:05 عصر
لج نکن بشمار میشه خط 4 :لبخند:
روش دیگه منظورم اینه که کدها رو تغییر بده
مثلا نیازی به آرایه ندارین


scm.Parameters.AddWithValue("@Reg_ID",TextBox1.text);

جستجو کن تا دلت بخواد مطلب هست
موفق باشید.