View Full Version : مشکل با اپدیت کردن دیتا ادپتور
پریناز.21
جمعه 01 آذر 1387, 23:41 عصر
سلام
من یه مشکلی با آپدیت کردن دیتا اداپتور دارم .تفریباهمه کدهام درست هست .من اطلاعاتم رو توی یه دیتا تیبل ریختم اما هنگام اجرا این ارور رو میگیره.
Dynamic SQL generation for the UpdateCommand is not supported against a SelectCommand that does not return any key column information.
لطفا کمکم کنید.
majid325
شنبه 02 آذر 1387, 01:14 صبح
بهتر بود دستورات استفاده شده و زمان خطا رو ميگفتيد تا بشه بهتر راهنمايتون كرد.
به احتمال زياد از SqlCommandBuilder استفاده ميكنيد ، شما فيلد pk رو در select قرار داديد؟
پریناز.21
شنبه 02 آذر 1387, 23:02 عصر
سلام
من میخواستم عکس صفحه رو بذارم اما نشد .الان کل کد فرم رو براتون میفرستم البته خیلی زیاد هست.اون قسمت هایی که مربوط به تعریق زیر برنامه ها هست رو حذف میکنم.برنامه هنگام اجرا به اون خط اجرا که میرسه ارور میده.
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using up;
using System.Data.OleDb;
namespace up
{
public partial class akhz_ray : Form
{
OleDbCommandBuilder cb;
OleDbConnection con;
OleDbDataAdapter da;
DataSet ds = new DataSet();
//DataView dv;
DataTable dt = new DataTable();
private void Form1_Load(object sender, EventArgs e)
{
textBox1.Text = Convert.ToString(dc);
con=new OleDbConnection ( "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=db_kandida.mdb");
da = new OleDbDataAdapter();
da.SelectCommand = new OleDbCommand();
da.SelectCommand.Connection = con;
da.SelectCommand.CommandText = "select * from kandida";
da.Fill(dt);
con.Open();
dc = dt.Rows.Count;
creatcheck(); //call a function
con.Close();
}
private void button2_Click(object sender, EventArgs e)
{
cb = new OleDbCommandBuilder(da);
int ray_count = 0;
Boolean [] c = new Boolean [dc];
for (int i = 0; i < dc; i++)
{
if (chekarray[i].Checked==true)
c[i] = true; for (int j = 0; i < dc; i++)
{
if (c[i] == true)
ray_count += 1;
con.Open();
dt.Rows[j][4] = ray_count;
da.Fill(ds, "kandida");
con.Close();
da.Update(dt);
}
}
}
majid325
یک شنبه 03 آذر 1387, 00:02 صبح
من كه متوجه نشدم button2_Click اولش چي كار ميكنه، ولي به احتمال زياد به خاطر استفاده از '*' در دستور select به جاي اسم فيلد ها اين error پيش مياد ، شما در دستور select اسم تك تك فيلد ها رو نام ببر .
نگفتيد كه در جول pk داريد يا نه؟
(لطفا كدها را در بين تگ code قرار دهيد)
پریناز.21
یک شنبه 03 آذر 1387, 21:18 عصر
سلام
مشکلم با اونی که شما گفتید حل نشد.در ضمن اون pk که شما میگید من نمیدونم چی هست .اگه لطف کنید توضیح بدید ممنون میشم.
این برنامه ،یعنی این قسمتش باید تعداد ارای هر کاندیدا رو بشماره وتو دیتا بیس ثبت کنه.
پریناز.21
یک شنبه 03 آذر 1387, 22:07 عصر
http://salam20.persiangig.com/untitled.JPG
اینم عکس صفحه
majid325
یک شنبه 03 آذر 1387, 22:35 عصر
pk همون كليد اصلي هست
تو جدولتون فيلدي با اين خصوصيت داريد؟
پریناز.21
یک شنبه 03 آذر 1387, 23:34 عصر
آهان الان گرفتم ،نه خیر تعریف نکردم.یعنی مشکل از اونه ؟
پریناز.21
دوشنبه 04 آذر 1387, 00:02 صبح
از راهنمایی تون ممنون ولی با pk هم حل نشد
majid325
دوشنبه 04 آذر 1387, 00:22 صبح
برنامه تون رو ميتونيد بزاريد اينجا تا مشكلشو برسي كنم؟
راستي چند تا مشكل ديگه به غير از اين erorr ي كه ميگي داري :
1-موقع كار با آداپتور لازم نيست از متد open كانكشن استفاده بكني.
2-قبل از صدا زدن متد update آداپتور اگه متد fill رو صدا بزني در واقع هيچ اطلاعاتي update نميشن.
3-....
پریناز.21
جمعه 08 آذر 1387, 22:35 عصر
این کارهایی رو هم که گفتید انجام دادم اما نشد
majid325
شنبه 09 آذر 1387, 00:54 صبح
عرض كردم خدمدتون كه اگر برنامه باشه ميتونم كمكتون كنم در غير اينصورت من كه راه چاره ديگه به ذهنم نميرسه ، دوستان رو نميدونم...
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.