PDA

View Full Version : مبتدی: ثبت نشدن اطلاعات در داخل جدول sql



zdavood
شنبه 13 اردیبهشت 1393, 13:35 عصر
سلام خسته نباشید .
برنامه ای رو که نوشتم قراره اطلاعات رو داخل جدول بانک اطلاعاتیم ثبت کنه اما خطای میده .
این تمام کد های هست که نوشتم
این هم ارور برنامه .

ممنون میشم کسی کمکم کنه .118584





[*=1|left]
[*=1|left]SqlConnection con = new SqlConnection("Server=(local);Database=sanabad;Integrated Security=True");
[*=1|left] DataSet ds = new DataSet();
[*=1|left]
[*=1|left] private void Form1_Load(object sender, EventArgs e)
[*=1|left] {
[*=1|left]
[*=1|left] con.Open();
[*=1|left] SqlDataAdapter da = new SqlDataAdapter("select * from civilika", con);
[*=1|left] da.Fill(ds,"civilika");
[*=1|left]
[*=1|left]
[*=1|left] }
[*=1|left]
[*=1|left] private void button2_Click(object sender, EventArgs e)
[*=1|left] {
[*=1|left] dataGridView1.DataSource = ds;
[*=1|left] dataGridView1.DataMember = "civilika";
[*=1|left] }
[*=1|left]
[*=1|left] private void button1_Click(object sender, EventArgs e)
[*=1|left] {
[*=1|left]
[*=1|left] SqlCommand command;
[*=1|left] string com = "insert into civilika (id,name,family) values ('" + textBox1.Text + "','" + textBox2.Text + "','" + textBox3.Text + "',)";
[*=1|left]
[*=1|left] command = new SqlCommand(com);
[*=1|left] command.ExecuteNonQuery ();
[*=1|left]
[*=1|left]
[*=1|left] }

hojjjat
شنبه 13 اردیبهشت 1393, 14:08 عصر
دوست عزیز این شیوه نوشتن دیگه منسوخ شده هست
از روش های جدید مثل linq -ef استفاده کن

kavayo
شنبه 13 اردیبهشت 1393, 14:51 عصر
رشته اتصال به دیتابیس رو چک کن.

laleh_gb
شنبه 13 اردیبهشت 1393, 16:26 عصر
خطای .ExecuteNonQuery معمولا مربئط به دستور sql ایست که نوشتید. اسم جدول و فیلد هاشو چک کنید.

rg_BlackRose
شنبه 13 اردیبهشت 1393, 22:38 عصر
سلام

تو خط زیر، (آخر خط) قبل از پرانتز ویرگول رو اضافی گذاشتید

string com = "insert into civilika (id,name,family) values ('" + textBox1.Text + "','" + textBox2.Text + "','" + textBox3.Text + "',)";


چند توصیه هم بنده به توصیه های دوستان اضافه میکنم

روش کد نویسی که شما انجام میدید مطمئنا مشکلات بیشتر و بزرگتری رو براتون پیش میاره.

لطفا برای عملیاتی نظیر INSERT,UPDATE,DELETE,SELECT برای هر کدام یک تابع مجزا بنویسید که مقدار برگشتی داشته باشه و بتونید نتیجه تابع رو ببینید.

مثال: SELECT


private DataSet Load_Data()
{
sqlConnection oConnection = new sqlConnection("ConnewctionString");
sqlCommand oCommand = new sqlCommand("SELECT ID,fname,lname FROM table1", oConnection);
sqlDataAdapter oAdapter = new sqlDataAdapter(oCommand);
DataSet ds = new DataSet();

try
{
oConnection.Open();
oAdapter.Fill(ds, "table1");

return ds;
}
catch (Exception ex)
{
rgMessage.Messages.ShowMessage("بارگذاری : " + ex.Message,"تیتر", MessageBoxButton.OK);
return false;
}
finally
{
oConnection.Close();
oConnection.Dispose();
}
}


و یا برای DELETE


private bool Delete_City(Guid id)
{
using(sqlConnection oConnection = new sqlConnection("ConnectionString"))
{
string strSQL = "DELETE * FROM table WHERE id=@ID";

try
{
sqlCommand oCommand = new sqlCommand(strSQL, oConnection);
oCommand.Parameters.Add("@ID", SqlDbType.UniqueIdentifier).Value = id;

oConnection.Open();

If(oCommand.ExecuteNonQuery() >= 1)
return true;
else
return false;
}
catch (Exception ex)
{
Messagebox.Show("پیغام سیستم : " + ex.Message,"تیتر", MessageBoxButton.OK);
return false;
}
finally
{
if (oConnection.State == ConnectionState.Open)
oConnection.Close();
}

}
}


نگران بیشتر شدن کدها تون هم نباشید.(مطمئن ترین و اصولی ترین راه رو انتخاب کنید)

موفق باشید

zdavood
یک شنبه 14 اردیبهشت 1393, 22:46 عصر
من با شیوه LINQ کمتر آشناییتی دارم .
از طرفی
1 -تا حدی هم برنامم رو با LINQ نوشتم اما باز نتونستم ارتباط کامل با بانک برقرار کنم و تغییراتمو توی بانک اعمال کنم
2 - نمی دونستم چطوری بانک رو به برنامم اضافه کنم که همیشه با برنامه باشه حتی توی یک سیتم دیگه .
3 - من در مورد کد نویسی پروسیجر هم چیزی نمیدونستم .
در هر صورت ممنون که جواب دادین

zdavood
یک شنبه 14 اردیبهشت 1393, 22:56 عصر
علیک سلام
ویر گول آخری که گفتین هم برداشتم اما باز همون ارور بالای که عکسشو گذاشته بودم رو میده .
در مورد برنامه ای که نوشتین میتونین توضیح بدین که دستور TRy ,catch ,finaly چی هست و کارش تو برنامتون چیه ؟؟
خیلی ممنون

samin_panahi
یک شنبه 14 اردیبهشت 1393, 22:57 عصر
من با شیوه LINQ کمتر آشناییتی دارم .
از طرفی
1 -تا حدی هم برنامم رو با LINQ نوشتم اما باز نتونستم ارتباط کامل با بانک برقرار کنم و تغییراتمو توی بانک اعمال کنم
2 - نمی دونستم چطوری بانک رو به برنامم اضافه کنم که همیشه با برنامه باشه حتی توی یک سیتم دیگه .
3 - من در مورد کد نویسی پروسیجر هم چیزی نمیدونستم .
در هر صورت ممنون که جواب دادین

استادی داشتیم که از حرفه ای ها در زمینه ی بانک اطلاعاتی بودند تاکید می کردند هیچ وقت وابسته به ابزار نباشید و جوری نباشه که چون با یه روش کار کردید نتونید بذاریدش کنار
ایشون هیچ وقت اسمی از linq نیاوردند، معمولا از پروسیجر استفاده می کردند
شما هم اگر می خواید یه روش رو انتخاب کنید به نظرم بهتره اول همین روش معمولی که دارید می نویسید رو جواب بگیرید و بعد برید سراغ پروسیجر
البته خودتون قبلش یه تحقیق کنید ببینید کدوم بهتره پروسیجر یا لینک...

zdavood
دوشنبه 15 اردیبهشت 1393, 20:16 عصر
قطعه کدهای که نوشتم رو بالغ بر هزار بار روی بقیه سیستما توی فیلم های آموزشی و توی همه جا دیدم که جواب میده اما توی کامپیوتر خودم همیشه ارور سیمیکالون رو میده (اروری که بالا گذاشتم)
دوتا سوال دارم خواهش مندم که جواب بدین .
1 - روش ایجاد یک بانک SQL EXPRESS رو کامل توضیح بدین(بانکی که توی خود سی شارپ درست میشه رو میگم) .
2 - نوحه ی نوشتن رشته اتصال به یک بانک چه بانک SQL EXPRESS و چه بانک SQL SERVER رو بهم بگین .
خیلی ممون

Ali.hitter
دوشنبه 15 اردیبهشت 1393, 21:14 عصر
سلام دوست عزیز
اگه از linq استفاده کنی هم خیلی راحت تره هم کد نویسی و زدن کوئری ها در linq شیرین تره
یکم راجع به linq تحقیق و مطالعه کن نتیجه خوبی میگیری

zdavood
دوشنبه 15 اردیبهشت 1393, 23:00 عصر
علیک سلام
برنامم رو کامل با LINQ پیاده کردم اما باز هم ارور سیمسکالون میده (منظورم اروریه که زیر سیمیکالون خط میکشه و پیامی در مورد بانک من میده) .
حتی من توی stored procedures قالبی به نام سیو هم درست کردم و توی سی شارپ اون قالب رو فراخوانی کردم اما باز هم موقع اجرا ارور میده و بقیه ی ماجرا .....

عزیزان خیلی ممنون که اینقدر توصیه میکنید که من پروژم رو با LINQ بنویسم اینو بدونین من فیلم های اموزشی زیادی رو دانلود کردم ودر مورد LINQ هم یاد دارم
اما
با توجه به این که LINQ علم نسبتا جدیدیه و کتابی نیست که تخصصی در موردش توضیح داده باشه
ترجیح میدم پایم رو قوی کنم و با کد نویسی SQL کارم رو پیش ببرم .


و خواهش میکنم از عزیزانی که تونستن سی شارپ رو به SQL EXPRESS ارتباط بدن سوال های پایین رو ی نگاه بندازن .
1 - روش ایجاد یک بانک SQL EXPRESS رو کامل توضیح بدین(بانکی که توی خود سی شارپ درست میشه رو میگم) .
2 - نوحه ی نوشتن رشته اتصال به یک بانک چه بانک SQL EXPRESS و چه بانک SQL SERVER رو بهم بگین .
خیلی خیلی ممون میشم کمکم کنید .

blackwidow64
سه شنبه 16 اردیبهشت 1393, 08:13 صبح
Com.Connection را باید مشخص کنید تا مشکل برطرف گردد.

zdavood
سه شنبه 16 اردیبهشت 1393, 20:02 عصر
با عرض پوزش منظورتونو متوجه نمیشم .
com رشته sqlcommand من هستش و با کدهای sql مقدار دهی فیلد های داخل بانک رو انجام میدم .
و توی برنامم هم یک همچین چیزی که شما نوشتین نمیشه تایپ کرد .
اگر میتونین بیشتر توضیح بدین که چی کار کنم .
خیلی ممنون .

zdavood
سه شنبه 16 اردیبهشت 1393, 20:08 عصر
دوستان
عزیزاان
برنامه نویسان محترم .
هر کسی که ایدهی داری برای هل مشکل من لطفا کمکم کنید .:افسرده:
من کمتر با SQL کد نویسی کردم .
لطفا بگین که چه کنم برای ارتباط کامل وصحیح با بانک SQL EXPRESS و اعمال رکورد از سی شارپ به بانک .
لطفا مشکلی که بالا براتون توضیح دادم رو کمکم کنید حل کنم .
خیلی ممنون .