ورود

View Full Version : سوال: مشکل درج اطلاعات



R_Rajaee_Rad
سه شنبه 02 شهریور 1389, 22:28 عصر
سلام
من از VS 2008 و SQL 2008
طبق آموزش هایی که در همین تالار در رابطه با ADO.NET بود مو به مو رفتم
اما موقع درج اطلاعات هنگام کلیک روی دکمه مربوط این خطا پیش میاد


http://up.iranblog.com/Files3/d15aca496c974c8b9b8e.jpg

هونطور که میبینید خطا از این گزینه است

cmd.ExecuteNonQuery();

اینم پروژه
http://up.iranblog.com/Files3/2fcf27bff6c7474c8ba5.rar

Rejnev
سه شنبه 02 شهریور 1389, 23:13 عصر
دستور کامل اینسرت به همراه نام جدول رو بنویسید

R_Rajaee_Rad
چهارشنبه 03 شهریور 1389, 10:04 صبح
private void Insert(SqlCommand cmd)
{
Connect();
cmd.Connection = cnn;
cnn.Open();
cmd.ExecuteNonQuery();
cnn.Close();
}

private void button1_Click(object sender, EventArgs e)
{
arr.Add(textBox1.Text);
arr.Add(textBox2.Text);
cmd.CommandText = "insert into Shelf(Field1,Field2)Values(@Field1,@Field2)";
cmd.Parameters.Clear();
cmd.Parameters.Add("@Field1", SqlDbType.NVarChar).Value = arr[0].ToString();
cmd.Parameters.Add("@Field2", SqlDbType.Int).Value = int.Parse(arr[1].ToString());

Insert(cmd);
LoadAll();
dataGridView1.DataSource = ds;
dataGridView1.DataMember = "Barnamenevis";

}
اسم جدول tabel_1 هست

Rejnev
چهارشنبه 03 شهریور 1389, 15:24 عصر
در دستور insert بجاي shelf بنويسيد table_1

R_Rajaee_Rad
چهارشنبه 03 شهریور 1389, 15:56 عصر
در دستور insert بجاي shelf بنويسيد table_1

بازم همون خط خطا میده اینم متن خطا:


Invalid column name 'Field1'.
Invalid column name 'Field2'.

Rejnev
چهارشنبه 03 شهریور 1389, 16:51 عصر
عزيز من نام فيلد ها و نام جدول رو بايد در دستور اينسرت بر اساس نامهايي كه در جدول اصليتون توي اس كيو ال هست بديد.
مثلا جدول:
table1
فيلدهاي
col1
col2
رو داره
حالا دستور اينسرت ميشه:




"insert into table1(col1,col2)values(@c1,@c2)";

R_Rajaee_Rad
چهارشنبه 03 شهریور 1389, 21:15 عصر
خیلی متشکر
ولی این روش دسترسی به داده ها و انجام عملیات خیلی کد نویسی و زحمت داره
این روش در برنامه های تجاری هم استفاده میشه؟
روش بهتری هم سراغ دارید؟

Rejnev
چهارشنبه 03 شهریور 1389, 23:12 عصر
بله که دارم
این روش سنتی که الآن شما نوشتید ADO دات نت نام داره
حالا روش لینک(linq) کار با داده ها رو متحول کرده
لینک یک ORM یا همون (object relational mapping) است که مانند یک لایه امور مربوط به سطح دیتابیس رو به بهترین و بهینه ترین شکل انجام میده و یک API راحت رو برای استفاده از اون در اختیار برنامه نویس ها قرار میده.
برای شروع لینک باید سینتکس اون رو یاد بگیرید.
سپس از این کتاب (http://www.barnamenevis.org/forum/showthread.php?t=124289) چهار عمل اصلی رو که به صورت ساده آموزش داده رو در لینک یاد بگیرید
سپس برای استفاده از extention method هایی که لینک به کلاسهای ارث بری شده از IEnumrable و IQueryable (کلاسهای collection ای مثل لیست جنریک یا آرایه ها و ...)اضافه میکنه نیاز به یادگیری لابدا اکسپرشن (http://msdn.microsoft.com/en-us/library/bb397687.aspx) ( lambda expression) خواهید داشت.
در کل اگه پیش زمینه قبلی برنامه نویسی سی شارپ و کلاس نویسی داشته باشید در عرض چند روز با مطالعه زیاد و تحقیق و پرسش و پاسخ راه میفتید و در سطح مبتدی مثل من یاد میگیرید.