PDA

View Full Version : اشکال در انتقال اطلاعات از #C به SQL SERVER



bpzone
شنبه 27 مرداد 1386, 01:39 صبح
سلام به همگی
من به یک مشکل بر خوردم و دلیلش رو نمی تونم بفهمم :ناراحت:

من وقتی کد زیر رو اجرا میکنم واسه انتقال اطلاعات فرمم به دیتابیس با موفقیت اجرا نمیشه



SqlConnection objConnection = newSqlConnection("server=localhost;database=Sandogh_Mohebin;user id=sa;password=Mohebin_Sandogh;");

SqlCommand objCommand_Information = newSqlCommand();
objCommand_Information.Connection = objConnection;
SqlCommand objCommand_Mojodi = newSqlCommand();
objCommand_Mojodi.Connection = objConnection;

objCommand_Mojodi.Parameters.AddWithValue("@Sh_Hesab__Mojodi", int.Parse(txt_Sh_Hesab.Text));
objCommand_Information.Parameters.AddWithValue("@Sh_Hesab__Account_Information", int.Parse(txt_Sh_Hesab.Text));
objCommand_Information.Parameters.AddWithValue("@Name", txt_Name.Text);
objCommand_Information.Parameters.AddWithValue("@Family", txt_Family.Text);
objCommand_Information.Parameters.AddWithValue("@Father", txt_Father.Text);
objCommand_Information.Parameters.AddWithValue("@ShSh", txt_ShSh.Text);
objCommand_Information.Parameters.AddWithValue("@Sadere", txt_Sadere.Text);
objCommand_Information.Parameters.AddWithValue("@Motevalede", txt_Motevalede.Text);
objCommand_Information.Parameters.AddWithValue("@Address", txt_Address.Text);
objCommand_Information.Parameters.AddWithValue("@Tell", txt_Tell.Text);
objCommand_Information.Parameters.AddWithValue("@Name_BazKonande", txt_Name_BazKonande.Text);
objCommand_Information.Parameters.AddWithValue("@Family_BazKonande", txt_Family_BazKonande.Text);
objCommand_Information.Parameters.AddWithValue("@Nesbat_BazKonande", txt_Nesbat_BazKonande.Text);
objCommand_Information.Parameters.AddWithValue("@Moaref", txt_Moaref.Text);
objCommand_Information.Parameters.AddWithValue("@NafareAval", txt_NafareAval.Text);
objCommand_Information.Parameters.AddWithValue("@NafareDovom", txt_NafareDovom.Text);
objCommand_Information.Parameters.AddWithValue("@NafareSevom", txt_NafareSevom.Text);
objCommand_Information.Parameters.AddWithValue("@rdb_Only", rdb_Only.Checked);
objCommand_Information.Parameters.AddWithValue("@rdb_Sum", rdb_Sum.Checked);

if (strFilename_Orginal != null)
{
FileStream streamOrginal = newFileStream(strFilename_Orginal, FileMode.Open, FileAccess.Read);
BinaryReader readerOrginal = newBinaryReader(streamOrginal);
byte[] photoOrginal = readerOrginal.ReadBytes((int)streamOrginal.Length) ;
readerOrginal.Close();
streamOrginal.Close();
objCommand_Information.Parameters.Add("@pic_EmzaOrginal", SqlDbType.VarBinary, photoOrginal.Length).Value = photoOrginal;
}
else

objCommand_Information.Parameters.Add("@pic_EmzaOrginal", SqlDbType.VarBinary).Value = null;

if (strFilename1 != null)
{
FileStream stream1 = newFileStream(strFilename1, FileMode.Open, FileAccess.Read);
BinaryReader reader1 = newBinaryReader(stream1);
byte[] photo1 = reader1.ReadBytes((int)stream1.Length);
reader1.Close();
stream1.Close();
objCommand_Information.Parameters.Add("@pic_Emza1", SqlDbType.VarBinary, photo1.Length).Value = photo1;
}
else

objCommand_Information.Parameters.Add("@pic_Emza1", SqlDbType.VarBinary).Value = null;

if (strFilename2 != null)
{
FileStream stream2 = newFileStream(strFilename2, FileMode.Open, FileAccess.Read);
BinaryReader reader2 = newBinaryReader(stream2);
byte[] photo2 = reader2.ReadBytes((int)stream2.Length);
reader2.Close();
stream2.Close();
objCommand_Information.Parameters.Add("@pic_Emza2", SqlDbType.VarBinary, photo2.Length).Value = photo2;
}
else

objCommand_Information.Parameters.Add("@pic_Emza2", SqlDbType.VarBinary).Value = null;

if (strFilename3 != null)
{
FileStream stream3 = newFileStream(strFilename3, FileMode.Open, FileAccess.Read);
BinaryReader reader3 = newBinaryReader(stream3);
byte[] photo3 = reader3.ReadBytes((int)stream3.Length);
reader3.Close();
stream3.Close();
objCommand_Information.Parameters.Add("@pic_Emza3", SqlDbType.VarBinary, photo3.Length).Value = photo3;
}
else

objCommand_Information.Parameters.Add("@pic_Emza3", SqlDbType.VarBinary).Value = null;



objCommand_Information.CommandText = "INSERT INTO Account_Information " +
"(Sh_Hesab__Account_Information, Name, Family, Father, ShSh, Sadere, Motevalede, Address, Tell, Name_BazKonande, Family_BazKonande, Nesbat_BazKonande, Moaref, NafareAval, NafareDovom, NafareSevom, rdb_Only, rdb_Sum, pic_EmzaOrginal, pic_Emza1, pic_Emza2, pic_Emza3)" +
" VALUES (@Sh_Hesab__Account_Information, @Name, @Family, @Father, @ShSh, @Sadere, @Motevalede, @Address, @Tell, @Name_BazKonande, @Family_BazKonande, @Nesbat_BazKonande, @Moaref, @NafareAval, @NafareDovom, @NafareSevom, @rdb_Only, @rdb_Sum, @pic_EmzaOrginal, @pic_Emza1, @pic_Emza2, @pic_Emza3)";

objCommand_Mojodi.CommandText = "INSERT INTO Mojodi (Sh_Hesab__Mojodi, Mojodi) VALUES (@Sh_Hesab__Mojodi,0)";

objConnection.Open();
objCommand_Information.ExecuteNonQuery();
objCommand_Mojodi.ExecuteNonQuery();
objConnection.Close();





و وقتی برنامه رو اجرا میکنم و کلید مربوط به این کد زده میشه ، این پیغام خطا رو بهم میده

Parameterized Query '(@Sh_Hesab__Account_Information int,@Name nvarchar(5),@Family nv' expects parameter @pic_EmzaOrginal, which was not supplied.



خواهشاً به دادم برسید :ناراحت::افسرده:

MH2538
شنبه 27 مرداد 1386, 06:13 صبح
سلام
شما تعدادی پارامتر به دستورInsert دادی که اونها رو معرفی کردی ولی شاهراً مقدار بهشون دادی . منظورم همون 3-4 تا پارامتری که خودش بهت errorداده.کنترل کن مقدار دارن یا null هستند


objCommand_Information.CommandText = "INSERT INTO Account_Information " +
"(Sh_Hesab__Account_Information, Name, Family, Father, ShSh, Sadere, Motevalede, Address, Tell, Name_BazKonande, Family_BazKonande, Nesbat_BazKonande, Moaref, NafareAval, NafareDovom, NafareSevom, rdb_Only, rdb_Sum, pic_EmzaOrginal, pic_Emza1, pic_Emza2, pic_Emza3)" +
" VALUES (@Sh_Hesab__Account_Information, @Name, @Family, @Father, @ShSh, @Sadere, @Motevalede, @Address, @Tell, @Name_BazKonande, @Family_BazKonande, @Nesbat_BazKonande, @Moaref, @NafareAval, @NafareDovom, @NafareSevom, @rdb_Only, @rdb_Sum, @pic_EmzaOrginal, @pic_Emza1, @pic_Emza2, @pic_Emza3)";

bpzone
شنبه 27 مرداد 1386, 09:29 صبح
همونطور که توی کد معلوم هست ، این متغیرها مقدارشون رو از textbox میگیرن
و چون یک سه تا متغیر اول توی دیتابیس NotNull فرض شده اند ، باید حتماً پر باشند ولی وقتی هم که داده بهشون میدی ، این مشکل پیده میشه :(

once4ever
شنبه 27 مرداد 1386, 10:13 صبح
ولی وقتی هم که داده بهشون میدی ، این مشکل پیده میشه :(
به نوع داده هات دقت کردی؟ اگه تو بانک عدد بخواد، نمیتونی رشته بهش پاس کنی

bpzone
شنبه 27 مرداد 1386, 10:37 صبح
نوع داده های ارسالی به پایگاه دقیقاً همونی هست که تعریف شده