PDA

View Full Version : ارور هنگام استفاده از دستور insert



میلاد قاضی پور
چهارشنبه 12 خرداد 1389, 19:20 عصر
سلام . من وقتی روی دکمه ثبت که کدهاشو توی لینک زیر میبینید کلیک میکنم این ارور رو میده :
Invalid index 0 for this SqlParameterCollection with Count=0

*کانکشن در فرم لود اوپن میشه .
*من ایندکس پارامترهارو یه بار دیگه چون یه فیلد کلیک آی دی دارم ، یک دادم بهشون .بازم همین ارور رو داد !





private void fInsCommand()
{
insCommand.CommandType = CommandType.Text;
insCommand.Connection = connection;
insCommand.CommandText = "INSERT INTO users";


//daryafte parametrha
insCommand.Parameters.Add("@name", SqlDbType.NVarChar);
insCommand.Parameters.Add("@lname", SqlDbType.NVarChar);
insCommand.Parameters.Add("@semat", SqlDbType.NVarChar);
insCommand.Parameters.Add("@lastlogin", SqlDbType.DateTime);
insCommand.Parameters.Add("@loginterm", SqlDbType.DateTime);

//ekhtesase maghadir be parametrha
selCommand.Parameters[0].Value = textBox1_name.Text;
selCommand.Parameters[1].Value = textBox2_lname.Text;
selCommand.Parameters[2].Value = textBox5_job.Text;
////akharin bare vorude karbar
selCommand.Parameters[3].Value = DateTime.Now;
////akharin bare khoruje karbar
selCommand.Parameters[4].Value = DateTime.Now;


insCommand.ExecuteNonQuery();
connection.Close();
}


private void button_sabtekarbar_Click(object sender, EventArgs e)
{
fInsCommand();

}



ضمنا آیا این طرز کد نویسی درست هست یا نه من مبتدیم ؟

reza_Nazem
چهارشنبه 12 خرداد 1389, 20:36 عصر
دوست عزیز قسمتی که به CommandText یک کوری رو دادی چیزی رو کم ننوشتی کد sql ناقصه

میلاد قاضی پور
پنج شنبه 13 خرداد 1389, 00:04 صبح
یعنی چیو کم نوشتم . کجا رو اصلاح کنم ؟

mmd2009
پنج شنبه 13 خرداد 1389, 00:43 صبح
دوست عزیز این یک نمونه کد درج هستش امیدوارم به کارت بیاد...






SqlConnection objConnection = new

SqlConnection("Server=localhost;Database=Pubs;User
ID=sa;Password=csdotnet;");

SqlCommand objCommand = new SqlCommand();
objCommand.Connection = objConnection;
٦٢٥
objCommand.CommandText = "INSERT INTO authors " +

"(au_id, au_lname, au_fname, contract) " +

"VALUES(@au_id, @au_lname, @au_fname, @au_contract)";
objCommand.Parameters.AddWithValue("@au_id",
txtAuId.Text);
objCommand.Parameters.AddWithValue("@au_lname",
txtLastName.Text);
objCommand.Parameters.AddWithValue("@au_fname",
txtFirstName.Text);
objCommand.Parameters.AddWithValue("@au_contract",
chkContract.Checked);
objConnection.Open();
objCommand.ExecuteNonQuery();
objConnection.Close();

میلاد قاضی پور
پنج شنبه 13 خرداد 1389, 01:45 صبح
به روش شما انجام دادم این ارور رو روی اکسکیوتنونکوئری داد :

Must declare the scalar variable "@name".

hamedsabzian
پنج شنبه 13 خرداد 1389, 04:42 صبح
مشکل دستور SQL

insCommand.CommandText = "INSERT INTO users";

درست:
insCommand.CommandText = "INSERT INTO users (name,lname,...) values(@name,@lname,...)";

behnam25214
پنج شنبه 13 خرداد 1389, 10:34 صبح
همیشه متغییر name رو تو دستورات Sql داخل [] قرار بده به این شکل:[name ]

میلاد قاضی پور
پنج شنبه 13 خرداد 1389, 10:53 صبح
بعد از راهنمایی شما عزیزان کدم به این شکل درومده اما مشکل همچنان ادامه داره



private void fInsCommand()
{
insCommand.CommandType = CommandType.Text;
insCommand.Connection = connection;
insCommand.CommandText = "INSERT INTO users ([name] , lname, semat , lastlogin, loginterm)"
+"values (@name , @lname, @semat , @lastlogin, @loginterm)";


////daryafte parametrha
//insCommand.Parameters.Add("@name", SqlDbType.NVarChar);
//insCommand.Parameters.Add("@lname", SqlDbType.NVarChar);
//insCommand.Parameters.Add("@semat", SqlDbType.NVarChar);
//insCommand.Parameters.Add("@lastlogin", SqlDbType.DateTime);
//insCommand.Parameters.Add("@loginterm", SqlDbType.DateTime);

//ekhtesase maghadir be parametrha
selCommand.Parameters.AddWithValue("@name", textBox1_name.Text);
selCommand.Parameters.AddWithValue("@lname", textBox3_uname.Text);
selCommand.Parameters.AddWithValue("@semat", textBox5_job.Text);
////akharin bare vorude karbar
selCommand.Parameters.AddWithValue("@lastlogin", DateTime.Now);
////akharin bare khoruje karbar
selCommand.Parameters.AddWithValue("@loginterm", DateTime.Now);


insCommand.ExecuteNonQuery();Must declare the scalar variable "@name".

میلاد قاضی پور
پنج شنبه 13 خرداد 1389, 10:59 صبح
من از همه معذرت میخوام مثل اینکه همونطوری که در کد بالا مشاهده میکنید دستور addwithvalue رو به یه کامند دیگه نسبت دادم . پوزش بسیار . مشکل حب شد .