PDA

View Full Version : سوال: عدم ثبت اطلاعات



minajasmi
پنج شنبه 13 بهمن 1390, 19:37 عصر
سلام دوستان سایت من گاهای اطلاعات را ثبت مبکنه گاهی خیر.
فکر نمیکنم از نظر کد مشکلی داشته باشه اگه اینطور بود کلا اجرا نمیشد میشه راهنماییم کنید دلیلش چیه. خیلی نیاز دارم به راهنماییهاتون ممنون

xalerebvar
پنج شنبه 13 بهمن 1390, 19:44 عصر
یه قسمت از کدهات رو بزار تا کمکت کنیم

minajasmi
پنج شنبه 13 بهمن 1390, 19:50 عصر
string s= ConfigurationManager.ConnectionStrings["con"].ConnectionString;
SqlConnection con1=new SqlConnection(s);
SqlCommand com = new SqlCommand("select count(shmeli) from naghdi where shmeli=@shmeli", con1);
com.Parameters.Add("@shmeli", SqlDbType.NVarChar ).Value = TextBox4.Text;
try
{
con1.Open();
k = Convert.ToInt16(com.ExecuteScalar());
}
catch (SqlException ex)
{
Response.Write(ex.Message.ToString());
}
finally
{
if ((con1.State != ConnectionState.Closed))
{
con1.Close();

}

}
if (k == 0)
{
/////////////////////////////////////
SqlConnection con = new SqlConnection(s);
SqlCommand cmd = new SqlCommand("insert into naghdi(name,family,father,shmeli,shshenasname,sodo or,tavalod,post,mobile,adres,tel,pelaktype,shpelak ,system,karbari,tsil,tdif,model,sanad,shshasi,shmo tor,color,shsookht,shenase,hesab,tarikhsabt,kargoz ari,sms1,datesms1,tamas1,datetamas1,sabt1,datesabt 1,tahvilkarbar1,datet1,ostan) values (@name,@family,@father,@shmeli,@shshenasname,@sodo or,@tavalod,@post,@mobile,@adres,@tel,@pelaktype,@ shpelak,@system,@karbari,@tsil,@tdif,@model,@sanad ,@shshasi,@shmotor,@color,@shsookht,@shenase,@hesa b,@tarikhsabt,@kargozari,@sms1,@datesms1,@tamas1,@ datetamas1,@sabt1,@datesabt1,@tahvilkarbar1,@datet 1,@ostan)", con);
SqlParameter nam = new SqlParameter("@name", SqlDbType.NChar);
SqlParameter family1 = new SqlParameter("@family", SqlDbType.NChar);
SqlParameter pedar = new SqlParameter("@father", SqlDbType.NChar);
SqlParameter meli = new SqlParameter("@shmeli", SqlDbType.NVarChar);

cmd.Parameters.Add(nam);
cmd.Parameters.Add(family1);
cmd.Parameters.Add(pedar);
cmd.Parameters.Add(shenasname);
cmd.Parameters.Add(meli);

cmd.Parameters["@name"].Value = TextBox1.Text;
cmd.Parameters["@family"].Value = TextBox2.Text;
cmd.Parameters["@father"].Value = TextBox3.Text;
cmd.Parameters["@shmeli"].Value = TextBox4.Text;
cmd.Parameters["@shshenasname"].Value = TextBox5.Text;

try
{
con.Open();
cmd.ExecuteNonQuery();
}
catch (SqlException ex)
{
Response.Write(ex.Message.ToString());
}
finally
{
if ((con.State != ConnectionState.Closed))
{
con.Close();


}

}
البته تعداد فیلدام زیاده من چند تاشو گذاشتم.ممنون راهنماییم کنید لطفا

xalerebvar
پنج شنبه 13 بهمن 1390, 20:12 عصر
چرا کدهاتون رو به همدیگه وابسته کردین و برای اجرای دستور Insert شرط گذاشتین؟

if (k == 0)

minajasmi
جمعه 14 بهمن 1390, 02:47 صبح
چرا کدهاتون رو به همدیگه وابسته کردین و برای اجرای دستور Insert شرط گذاشتین؟

if (k == 0)

اونا برای تکراری نبون کد ملی گداشتم

aslan
جمعه 14 بهمن 1390, 11:41 صبح
سلام

بهتر است
cmd.ExecuteNonQuery();
را از ساختار try catch خارج کنید تا علت خطا را بدست آورید

به احتمال زیاد در بعضی از موارد محتویات تکست باکس ها با ساختار مورد نظر در Parameters ها هماهنگ نیست

minajasmi
جمعه 14 بهمن 1390, 14:25 عصر
من هر چی میزنم ثبت میکنه نوع اکثر فیلدهام هم nvarchar که هر داده ای را میگیره.
فقط وقتی داشتم همه فیلدهارو چک میکردم دیدم نوع یه فیلد را که nvarchar در قسمت نوع پارامترها nchar معرفی کردم که درستش کردم.به نظر شما آیا اشکال از این بوده؟ اگر اینطوره پس چرا گاهی اوقات ثبت نمیکنه؟
آخه من خودم میتونم ثبت کنم واسه همین نمیدونم چرا کاربر گاهی اوقات نمیتونه ثبت نام کنه؟
ممنون میشم راهنماییم کنید