PDA

View Full Version : مشکل در اضافه کردن اطلاعات به دیتابیس



پیام حیاتی
شنبه 25 آذر 1391, 10:46 صبح
سلام
من یک دیتابیس به نام DCollege و یک جدول به نام TCollege ساختم ، فرم Visual بدین شکل هست :

http://ahvazsell.com/Test/DB-Error-1.png

زمانی که اطلاعات رو در TextBox ها وارد می کنم و کلید Insert رو میزنم با خطای :
No overload for method 'EndExecuteNonQuery' takes 0 arguments
مواجه میشم.
به این دستور خطا میده :

com1.EndExecuteNonQuery();

این کدهای دکمه Insert من هست :

private void button2_Click(object sender, EventArgs e)
{
SqlConnection con1 = new SqlConnection("Integrated Security=true;Initial Catalog=DCollage");
con1.Open();
String strQuery = String.Format("INSERT INTO TCollege VALUES ('{0}','{1}','{2}')", textBox2.Text, textBox3.Text);

SqlCommand com1 = new SqlCommand(strQuery, con1);

com1.EndExecuteNonQuery();
con1.Close();
load_database();
}

این هم کل کدها :

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Data;
using System.Data.SqlClient;

namespace DataBase
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}

private void load_database()
{
SqlConnection con1 = new SqlConnection("Integrated Security=TRUE;Initial Catallog=DCollege");
con1.Open();
SqlDataAdapter da1 = new SqlDataAdapter("SELECT * FROM TCollege", con1);
DataSet ds1 = new DataSet();
da1.Fill(ds1, "TEMP");
dataGridView1.DataSource = ds1;
dataGridView1.DataMember = "TEMP";
con1.Close();
}


private void Form1_Load(object sender, EventArgs e)
{

// TODO: This line of code loads data into the 'dCollegeDataSet.TCollege' table. You can move, or remove it, as needed.
this.tCollegeTableAdapter.Fill(this.dCollegeDataSe t.TCollege);

}

private void button1_Click(object sender, EventArgs e)
{
SqlConnection con1 = new SqlConnection("Integrated Security=TRUE;Initial Catalog=DCollege");
con1.Open();
String strQuery = "DELETE FROM TCollege WHERE STno ='" + textBox1.Text + "'";
SqlCommand com1 = new SqlCommand(strQuery, con1);
com1.ExecuteNonQuery();
con1.Close();
load_database();



}

private void button2_Click(object sender, EventArgs e)
{
SqlConnection con1 = new SqlConnection("Integrated Security=true;Initial Catalog=DCollage");
con1.Open();
String strQuery = String.Format("INSERT INTO TCollege VALUES ('{0}','{1}','{2}')", textBox2.Text, textBox3.Text);

SqlCommand com1 = new SqlCommand(strQuery, con1);

com1.EndExecuteNonQuery();
con1.Close();
load_database();
}
}
}

morteza271
شنبه 25 آذر 1391, 10:51 صبح
به جای این دستور
com1.EndExecuteNonQuery();
دستور زیر رو بنویسید :
com1.ExecuteNonQuery();

پیام حیاتی
شنبه 25 آذر 1391, 11:10 صبح
جایگزین کردم و اجرا الآن زمان اضافه کردن اطلاعات به :

con1.Open();

گیر میده.

Cannot open database "DCollage" requested by the login. The login failed.
Login failed for user 'payam-PC\payam'.

saeed-71
شنبه 25 آذر 1391, 11:24 صبح
دوست عزیز کانکشن استرینگت اشتباهه
باید اینجوری باشه

SqlConnection con1 = new SqlConnection(@"data source=.\\sqlexpress;Integrated Security=true;Initial Catalog=DCollage");

Mahmoud.Afrad
شنبه 25 آذر 1391, 12:16 عصر
فکر کنم کلمه DCollege رو در کانکشن اشتباه نوشتی!!(با توجه به پست اول)

پیام حیاتی
شنبه 25 آذر 1391, 12:17 عصر
دستور کانکشن استرینگم روی دکمه Delete به درستی کار میکنه اما روی insert خیر.
جایگزین شد اما مشکل برطرف نشد.

saeed-71
شنبه 25 آذر 1391, 12:18 عصر
رو اینسرت اطلاعات چه اروری میده؟

پیام حیاتی
شنبه 25 آذر 1391, 12:21 عصر
فکر کنم کلمه DCollege رو در کانکشن اشتباه نوشتی!!(با توجه به پست اول)

کاملا" درسته تصحیح شد ممنون از دقتتون ، اما حالا به این خط گیر میده:

String strQuery = String.Format("INSERT INTO TCollege VALUES ('{0}','{1}','{2}')", textBox2.Text, textBox3.Text);

Index (zero based) must be greater than or equal to zero and less than the size of the argument list.

TextBox4 یادم رفته بود اضافه کنم اطلاعات اضافه شد.

از همه عزیزان که پاسخ دادن ممنونم ، واقعا ممنون.

Fastdesign
شنبه 25 آذر 1391, 12:21 عصر
دلیل استفاده از "@" تو کانکشن استرینگ چیه ؟

saeed-71
شنبه 25 آذر 1391, 12:25 عصر
دلیل استفاده از "@" تو کانکشن استرینگ چیه ؟

در زبان سی \ بک اسلش باعث میشه رشته بسته بشه.
ما میایم قبلش @ میذاریم تا تا بک اسلش خنثی بشه و دیگه اروری نمیبینی.

saeed-71
شنبه 25 آذر 1391, 12:28 عصر
چرا این کانکشن استرینگو هی تکرار کردی؟نیازی نیست!همون اول تعریفش کن.

Mahmoud.Afrad
شنبه 25 آذر 1391, 12:45 عصر
کاملا" درسته تصحیح شد ممنون از دقتتون ، اما حالا به این خط گیر میده:

String strQuery = String.Format("INSERT INTO TCollege VALUES ('{0}','{1}','{2}')", textBox2.Text, textBox3.Text);

Index (zero based) must be greater than or equal to zero and less than the size of the argument list.
در قسمت values سه مقدار معرفی کردی ولی به دو تاش مقدار دادی. اصلاح کن.