مشکل این کد چیه (ساده) درج در بانک
این کد را برای درج در بانک sql اکسپرس نوشتم ولی نمیدونم چرا در قسمت اینزررت وقتی روی باتن کلیک میکنم ارور میده البته اگه کسی کار با دیتا ست هم تو این درج قرار بده ممنون میشم .
privatevoid button1_Click(object sender, EventArgs e)
{
SqlConnection conn = newSqlConnection("Data Source=.\\SQLEXPRESS;AttachDbFilename=" + Application.StartupPath + "\\Database1.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True");
SqlCommand cmd = newSqlCommand();
SqlDataAdapter da = newSqlDataAdapter();
DataTable dt = newDataTable();
DataSet ds =newDataSet();
if (txtfname.Text == "" || txtlname.Text == "" || txtcodozv.Text == "")
{
MessageBox.Show("error");
}
conn.Open();
cmd.CommandText = ("INSERT INTO Database1(" + "codeozviat," + "fname," + "lname," + "namepedar," + "tarikhtavalod," + "shomaremeli," + "telephon," + "address," + "tarikhozviat," + "tarikhengheza" + ") VALUSE(" + txtcodozv.Text + "," + txtfname.Text + "," + txtlname.Text + "," + txtnamepedar.Text + "," + mtxttarikhtavalod.Text + "," + Convert.ToInt16(txtmeli.Text) + "," + Convert.ToInt16(txttelephon.Text ) + "," + txtaddress.Text + "," + mtxttarikhozviat.Text + "," + mtxttarikhengheza.Text);
cmd.Connection = conn;
cmd.ExecuteNonQuery();
conn.Close();
}
نقل قول: مشکل این کد چیه (ساده) درج در بانک
" + "codeozviat," + "fname," + "
احتیاجی به گذاشتن کوتیشن برای فیلد هات نیست
درضمن اون ارور چیه
یا بقول دوست مون کد بزاره
یا فیلد های جدولت از چه نوع ای هست
اگه این موارد مشخص کنی زودتر به جواب میرسی
نقل قول: مشکل این کد چیه (ساده) درج در بانک
VALUSE باید بشه VALUES
باید در آخر کد یه پرانتز بسته اضافه کنید.
و بهتره که از سینتکس ''N برای فیلد های رشته ای استفاده کنید.
نقل قول: مشکل این کد چیه (ساده) درج در بانک
ممنون دوستان از اینکه راهنمایی کردید
از اینکه گفتین سورس را قرار بده کل سورس برنامه من همینه یعنی برای امتحان همین یه تیکه را نوشتم که با اررور مواجه شدم در ضمن values را هم درست کردم و کلیه فیلد های من از نو nchar(...) است و وارد کردن سه فیلد اول اجباریه دوستان از لطفتون ممنون من این برنامه را خیلی زود احتیاج دارم لطف کنید راهنمایی کنید
در ضمن سینتکس "N یعنی چی؟
نقل قول: مشکل این کد چیه (ساده) درج در بانک
نقل قول:
باید در آخر کد یه پرانتز بسته اضافه کنید.
این کار رو کردید؟
سینتکس ''N هم یعنی اینکه
, " + textbox1.text + ", -----> , N'" + textbox1.text + "',
نقل قول: مشکل این کد چیه (ساده) درج در بانک
پرانتز که درسته اضافه کردم ولی سینتکس میده .
ولی من
قسمت اینزرت را با این کد تغییر دادم
cmd.CommandText = ("insert into aza values('" + txtcodozv + "','" + txtfname + "','" + txtlname + "','" + txtnamepedar + "','" + mtxttarikhtavalod + "','" + txtmeli + "','" + txttelephon + "','" + txtaddress + "','" + mtxttarikhozviat + "','" + mtxttarikhengheza + "')");
ولی حالا در قسمت cmd.ExecuteNonQuery();
ارور میده یعنی اجرا میشه ولی وقتی داده وارد میکنم وکلیک میکنم اینجا گیر میکنه
در ضمن من فیلد های تاریخ را در mask قرار دادم (فکر نکنم مشکلی باشه چون در دیتابیس همشون از نوع nchar هستند)
ممنونم دوست عزیز
نقل قول: مشکل این کد چیه (ساده) درج در بانک
پرانتز که درسته (زوج)
ولی من قسمت اینزرت را با این کد تغییر دادم
cmd.CommandText = ("insert into aza values('" + txtcodozv + "','" + txtfname + "','" + txtlname + "','" + txtnamepedar + "','" + mtxttarikhtavalod + "','" + txtmeli + "','" + txttelephon + "','" + txtaddress + "','" + mtxttarikhozviat + "','" + mtxttarikhengheza + "')");
حالا در قسمت
cmd.ExecuteNonQuery();
ارور میده یعنی برنامه اجرا میشه وقتی داده وارد میکنم و کلیک میکنم این قسمت ارور میده ممنون دوست عزیز منتظرم
اگه یه نمونه کار در همین زمینه بدی ممنون میشم والا موندم توش
نقل قول: مشکل این کد چیه (ساده) درج در بانک
گلم ارورت مربوط به کانکشنت نی ؟
شکل درست دستور هم :
("+insert into post (post_creator,post_date,post_text)values("+text1.t ext+","+text2.text+","+text3.text
نقل قول: مشکل این کد چیه (ساده) درج در بانک
سلام خدمت همه دوستان عزیز
نقل قول:
نوشته شده توسط
mammad_asir
این کد را برای درج در بانک sql اکسپرس نوشتم ولی نمیدونم چرا در قسمت اینزررت وقتی روی باتن کلیک میکنم ارور میده البته اگه کسی کار با دیتا ست هم تو این درج قرار بده ممنون میشم .
privatevoid button1_Click(object sender, EventArgs e)
{
SqlConnection conn = newSqlConnection("Data Source=.\\SQLEXPRESS;AttachDbFilename=" + Application.StartupPath + "\\Database1.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True");
SqlCommand cmd = newSqlCommand();
SqlDataAdapter da = newSqlDataAdapter();
DataTable dt = newDataTable();
DataSet ds =newDataSet();
if (txtfname.Text == "" || txtlname.Text == "" || txtcodozv.Text == "")
{
MessageBox.Show("error");
}
conn.Open();
cmd.CommandText = ("INSERT INTO Database1(" + "codeozviat," + "fname," + "lname," + "namepedar," + "tarikhtavalod," + "shomaremeli," + "telephon," + "address," + "tarikhozviat," + "tarikhengheza" + ") VALUSE(" + txtcodozv.Text + "," + txtfname.Text + "," + txtlname.Text + "," + txtnamepedar.Text + "," + mtxttarikhtavalod.Text + "," + Convert.ToInt16(txtmeli.Text) + "," + Convert.ToInt16(txttelephon.Text ) + "," + txtaddress.Text + "," + mtxttarikhozviat.Text + "," + mtxttarikhengheza.Text);
cmd.Connection = conn;
cmd.ExecuteNonQuery();
conn.Close();
}
دوست عزيز من كامند استرينگ در پست اولتون رو به شكل زير تغيير دادم!! اگه نوع فيلدهاي بانكتون رو درست حدس زده باشم با اين كد مشكلي پيش نخواهد اومد!!
cmd.CommandText = "INSERT INTO Database1(codeozviat,fname,lname,namepedar,tarikht avalod,shomaremeli,telephon,address,tarikhozviat,t arikhengheza) VALUSE('" + txtcodozv.Text + "',N'" + txtfname.Text + "',N'" + txtlname.Text + "',N'" + txtnamepedar.Text + "','" + mtxttarikhtavalod.Text + "'," + Convert.ToInt16(txtmeli.Text) + "," + Convert.ToInt16(txttelephon.Text ) + ",N'" + txtaddress.Text + "','" + mtxttarikhozviat.Text + "','" + mtxttarikhengheza.Text+"')";
نقل قول:
نوشته شده توسط
mammad_asir
ولی حالا در قسمت
cmd.ExecuteNonQuery();
ارور میده یعنی اجرا میشه ولی وقتی داده وارد میکنم وکلیک میکنم اینجا گیر میکنه
در ضمن من فیلد های تاریخ را در mask قرار دادم (فکر نکنم مشکلی باشه چون در دیتابیس همشون از نوع nchar هستند)
ممنونم دوست عزیز
دوست عزيز اروري كه در قيمت ExecuteNonQuery به شما ميده مربوط ميشه به همين كامند استريگتون!!
كدي كه گذاشتم رو جايگزين كد پست اولتون كنيد انشاالله مشكلتون حل ميشه!!
موفق باشيد:چشمک:
نقل قول: مشکل این کد چیه (ساده) درج در بانک
ممنون دوست عزیز من قسمت اینزرت را با کد زیر تغییر دادم
cmd.CommandText = ("+insert into aza (codeozviat,fname,lname,namepedar,tarikhtavalod,sh omaremeli,telephon,address,tarikhozviat,tarikhengh eza)values("+txtcodozv+","+txtfname+","+txtlname +","+txtnamepedar +","+mtxttarikhtavalod +","+txtmeli +","+txttelephon +","+txtaddress +","+mtxttarikhozviat +","+mtxttarikhengheza );
ولی بازم در قسمت
cmd.ExecuteNonQuery();
اررور میده
به فریادم برسید***
نقل قول: مشکل این کد چیه (ساده) درج در بانک
دوست عزيز چرا اينطوري مي كنيد!!:عصبانی++::عصبانی::عصبا ی++:
من به شما مي گم كدي كه براتون گذاشتم رو جايگذين كنيد برميداريد كدتون رو هر طور مي خواهيد تغيير مي ديد دوباره پيغام ميديد كه ارور داره!!:عصبانی++:
دوست عزيز كاري كه بهتون گفتم رو انجام بديد مشكلتون حل ميشه!!:عصبانی:
مشكل كد شما هم اينه كه علامت تك كوتيشن برايه فيلدهاي nvarchar نذاشتيد!!(به كدي كه گذاشتم مراجعه كنيد!):عصبانی:
موفق باشيد:چشمک:
نقل قول: مشکل این کد چیه (ساده) درج در بانک
mamod asir کدتون که پر از اشکاله بعدشم به خطاهایی که میده دقت کنید خودش میگه کجای دستورinsert مشکل داره از کد زیر هم میتونید استفاده کنید کلا اگه از روش ارسال پارامتر استفاده کنید بهتره
strSQL = "insert into table(name,family,code) values(@nm,@fam,@cd)";
con.Open();
com = new SqlCommand(strSQL, con);
com.Parameters.Add("@nm", SqlDbType.NVarChar).Value = textBox1.Text;
com.Parameters.Add("@fam", SqlDbType.NVarChar).Value = textBox2.Text;
com.Parameters.Add("@cd", SqlDbType.NVarChar).Value = textBox3.Text;
com.ExecuteNonQuery();
con.Close();
قبل از فرم لود:
private string strSQL;
private SqlConnection con;
private SqlDataAdapter da;
private SqlCommand com;
در فرم لود :
con = new SqlConnection();
con.ConnectionString = (@"data source=.\sqlexpress;Initial catalog=databasename;Integrated Security=true");
تغییراته مربوط به کد insert رو خودتون بدین منظورم نوشتن فیلدای خودتون و نام تیبل . nm@ یا fam@ نام پارامتری هست که ارسال میشه واسه هر فیلدی خودتون یه چیزی بزارید
نقل قول: مشکل این کد چیه (ساده) درج در بانک
نقل قول:
نوشته شده توسط
mammad_asir
ممنون دوست عزیز من قسمت اینزرت را با کد زیر تغییر دادم
cmd.CommandText = ("+insert into aza (codeozviat,fname,lname,namepedar,tarikhtavalod,sh omaremeli,telephon,address,tarikhozviat,tarikhengh eza)values("+txtcodozv+","+txtfname+","+txtlname +","+txtnamepedar +","+mtxttarikhtavalod +","+txtmeli +","+txttelephon +","+txtaddress +","+mtxttarikhozviat +","+mtxttarikhengheza );
ولی بازم در قسمت
cmd.ExecuteNonQuery();
اررور میده
به فریادم برسید***
دوست عزیز لطفا" یه ذره به کدتون دقت کنید.
شما هنوز اون پرانتزی رو که دو مرتبه و با این بار سه مرتبه است که بتون گفتم رو ننوشتی.
","+mtxttarikhengheza ); ----->>> ","+mtxttarikhengheza + ")" );
راستی اون + قبل از insert چیه؟
نقل قول: مشکل این کد چیه (ساده) درج در بانک
ممنون دوستان عزیز
آقای yaser sadegh من کانکتم به اینترنت قطع و وصل میشد واسه همین صفحه دوم پاسخ را ندیدم ببخشید
ممنون دوستان عزیز با اضافه کردن کد زیر دیگه ارور نمیده
cmd.CommandText = "INSERT INTO aza(codeozviat,fname,lname,namepedar,tarikhtavalod ,shomaremeli,telephon,address,tarikhozviat,tarikhe ngheza) VALUES('" + txtcodozv.Text + "',N'" + txtfname.Text + "',N'" + txtlname.Text + "',N'" + txtnamepedar.Text + "','" + mtxttarikhtavalod.Text + "'," + Convert.ToInt32(txtmeli.Text) + "," + Convert.ToInt32(txttelephon.Text) + ",N'" + txtaddress.Text + "','" + mtxttarikhozviat.Text + "','" + mtxttarikhengheza.Text + "')";
ولی وقتی من در بانک درج میکنم با کد زیر
privatevoid frm_listozv_Load(object sender, EventArgs e)
{
// this.azaTableAdapter.Fill(this.database1DataSet1.a za);
DataSet ds = newDataSet();
SqlDataAdapter da = newSqlDataAdapter();
string strsql = "SELECT * FROM aza";
SqlConnection conn = newSqlConnection("Data Source=.\\SQLEXPRESS;AttachDbFilename=" + Application.StartupPath + "\\Database1.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True");
conn .Open();
da = newSqlDataAdapter (strsql, conn);
da .Fill(ds, "aza");
dataGridView1.DataBindings.Add(newBinding("DataSource", ds, "aza"));
conn.Close();
dataGridView1.ReadOnly = true;
}
جدول را در داخل رویداد لود فرم دیگه داخل دیتا گرید ویو نشون میدم جدول را با در نظر گرفتن رکورد جدید نشون میده ولی وقتی در قسمتserver explorer با راست کلیک روی جدول مورد نظر گذینه show table data را انتخاب میکنم دیگه اون رکورد های اضافه شده را در جدول نمیبینم و وقتی دوباره برنامه را اجرا میکنم دیگه اون فیلد های قبلی رو نشون نمیده یعنی در پایگاه ذخیره نمیکنه باید چه کدی را در کدام قسمت اضافه کنم در ضمن اگه بخوام کار اضافه کردن را با دیتاست (برای سرعت بیشتر) انجام بدم با ید چه کنم
ممنون دوستان دمتون گرم از کمکهاتون
خیلی ببخشدی گیر عجب آدم .... اوفتادین شما.
نقل قول: مشکل این کد چیه (ساده) درج در بانک
1.GOOGLE خیلی سریعتر میتونه مشکل شما رو حل کنه.
2.دیتاست مهمترین عامل کاهش سرعت برنامه هاست.
3.کد شما اصلا" دستور insert رو انجام نمیده.
4.بهتره که از sqlcommandbuilder استفاده کنید.
5.بهتره اول یکم sql یاد بگیرید بعد برنامه بنویسید و دوستان رو هم با error های مسخره خسته نکنید.
موفق باشید(سال دیگه که برنامه نویسی یاد گرفتید)
google
google
google
google
google