PDA

View Full Version : سوال: چرا بهنگام سازی داده ها با استفاده از DataAdapter با خطا مواجه می شود؟



manager_mrd
جمعه 03 اردیبهشت 1389, 20:02 عصر
public Form1()
{
InitializeComponent();
}
SqlDataAdapter da;
DataSet ds = new DataSet();
private void Form1_Load(object sender, EventArgs e)
{
// Ruberuye Data Source = bayad datasource khodetuno benevisin
string ConnectionString = "Data Source = SK; Trusted_Connection = True; Database = Northwind";
string CommandString = "Select * from Employees";
SqlConnection conn = new SqlConnection(ConnectionString);
SqlCommand cmd = new SqlCommand(CommandString, conn);
da = new SqlDataAdapter(CommandString, conn);
SqlCommandBuilder scb = new SqlCommandBuilder(da);
da.Fill(ds);
dataGridView1.DataSource = ds.Tables[0];
}

private void button1_Click(object sender, EventArgs e)
{
da.Update(ds);
}
اين كد برا آپديت كردن datagridview توي همين سايت گذاشته شده ولي تو كد آخر كه ميخواد آپديت كنه خطا ميگيره :
كسي ميدونه اشكال از كجاست . خواهش ميكنم اين سوالو حذف نكنيد خيلي بهش احتاج دارم

daffy_duck376
جمعه 03 اردیبهشت 1389, 20:57 عصر
خطا میگیره یهنی چی . کجا و چه خطایی . روی کدوم سطر . متن خطا

manager_mrd
جمعه 03 اردیبهشت 1389, 21:21 عصر
روي اخرين خط ك
da.update(ds) اين خطا رو ميده :
Dynamic SQL generation for the UpdateCommand is not supported against a SelectCommand that does not return any key column information.
اگه خودتون كد ديگه و راه حل بهتري دارين بذارين ممنون ميشم

Mahdad999
جمعه 03 اردیبهشت 1389, 23:44 عصر
public Form1()
{
InitializeComponent();
}
SqlDataAdapter da;
DataSet ds = new DataSet();
private void Form1_Load(object sender, EventArgs e)
{
// Ruberuye Data Source = bayad datasource khodetuno benevisin
string ConnectionString = "Data Source = SK; Trusted_Connection = True; Database = Northwind";
string CommandString = "Select * from Employees";
SqlConnection conn = new SqlConnection(ConnectionString);
SqlCommand cmd = new SqlCommand(CommandString, conn);
da = new SqlDataAdapter(CommandString, conn);
SqlCommandBuilder scb = new SqlCommandBuilder(da);
da.Fill(ds);
dataGridView1.DataSource = ds.Tables[0];
}

private void button1_Click(object sender, EventArgs e)
{
da.Update(ds);
}
اين كد برا آپديت كردن datagridview توي همين سايت گذاشته شده ولي تو كد آخر كه ميخواد آپديت كنه خطا ميگيره :
كسي ميدونه اشكال از كجاست . خواهش ميكنم اين سوالو حذف نكنيد خيلي بهش احتاج دارم

با سلام؛
دوست من شما براي كار با كانكشن حتما بايد اول اونو باز كنيد:
اگه كدتون رو با يه همچين ترتيبي بنويسيد كارتون درست ميشه:


private void Form1_Load(object sender, EventArgs e)
{
string cnnString = "...";
string cmdString = "Select * from Employees";
SqlConnection cnn = new SqlConnection(cnnString);
SqlCommand cmd = new SqlCommand(cmdString, cnn);
da = new SqlDataAdapter(cmdString, cnn);
cnn.open();
cmd.executenonequery();
da.Fill(ds);
cnn.close();
dataGridView1.DataSource = ds.Tables[0];
}

s.khoshfekran
شنبه 04 اردیبهشت 1389, 00:11 صبح
با سلام؛
دوست من شما براي كار با كانكشن حتما بايد اول اونو باز كنيد:
اگه كدتون رو با يه همچين ترتيبي بنويسيد كارتون درست ميشه:


private void Form1_Load(object sender, EventArgs e)
{
string cnnString = "...";
string cmdString = "Select * from Employees";
SqlConnection cnn = new SqlConnection(cnnString);
SqlCommand cmd = new SqlCommand(cmdString, cnn);
da = new SqlDataAdapter(cmdString, cnn);
cnn.open();
cmd.executenonequery();
da.Fill(ds);
cnn.close();
dataGridView1.DataSource = ds.Tables[0];
}


دوست عزیز میتونم بپورسم کجای این کد دیتابیس رو Update میکنه ؟:قهقهه:

exlord
شنبه 04 اردیبهشت 1389, 10:19 صبح
با سلام؛
دوست من شما براي كار با كانكشن حتما بايد اول اونو باز كنيد:
اگه كدتون رو با يه همچين ترتيبي بنويسيد كارتون درست ميشه:

DataAdapter خودش connection رو هم باز میکنه و هم میبنده ...

exlord
شنبه 04 اردیبهشت 1389, 10:24 صبح
روي اخرين خط ك
da.update(ds) اين خطا رو ميده :
Dynamic SQL generation for the UpdateCommand is not supported against a SelectCommand that does not return any key column information.
اگه خودتون كد ديگه و راه حل بهتري دارين بذارين ممنون ميشم
table شما primary key داره ؟؟؟

manager_mrd
شنبه 04 اردیبهشت 1389, 12:33 عصر
table شما primary key داره ؟؟؟
نه نداره .

exlord
شنبه 04 اردیبهشت 1389, 14:31 عصر
نه نداره .
خسته نباشین لطف کردین