PDA

View Full Version : سوال: مشکل در قسمت ثبت کتاب



AliRezaPro
شنبه 28 شهریور 1388, 18:35 عصر
سلام دوستان
این جدول من هست(عکس)
http://www.imagehost.ro/pict/191739304ab4ed2254bfe.jpg
و این هم کدی که نوشتم:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Data.SqlClient;

namespace Library
{
public partial class trusteeshipRegister : Form
{
public string StrConnection = "server=(local);database=Library;trusted_connection =yes";

SqlDataReader Reader;
bool boolCheckExistUsr = false;
bool boolCheckExistBook = false;

public bool CheckForExistUser()
{
using (SqlConnection Connection = new SqlConnection(StrConnection))
{
int IDForUser = Int32.Parse(txtIdozviat.Text);
SqlCommand objCommand = new SqlCommand();
objCommand.Connection = Connection;
objCommand.CommandType = CommandType.Text;
objCommand.CommandText = "select ID,FirstName,LastName from RegisterUser where ID='" + IDForUser + "'AND FirstName='" + txtName.Text + "' AND LastName='" + txtFamilyName.Text + "'";

Connection.Open();
Reader = objCommand.ExecuteReader();
if (Reader.HasRows == true)
{

label1.BackColor = Color.Green;
label1.Text = "وجود دارد";
label2.BackColor = Color.Green;
label2.Text = "وجود دارد";
boolCheckExistUsr = true;
return boolCheckExistUsr;

}

else
{
label2.BackColor = Color.Red;
label2.Text = "وجود ندارد";
label1.BackColor = Color.Red;
label1.Text = "وجود ندارد";
boolCheckExistUsr = false;
return boolCheckExistUsr;

}

}
}

private bool CheckExisBook()
{
using (SqlConnection Connection = new SqlConnection(StrConnection))
{
int IdForBook = Int32.Parse(txtNumberKetab.Text);
SqlCommand objCommand = new SqlCommand();
objCommand.Connection = Connection;
objCommand.CommandType = CommandType.Text;
objCommand.CommandText = "select IDBook,BookName from BookDetails where IDBook='" + IdForBook + "' AND BookName='" + txtNameBook.Text + "'";
Reader = null;
Reader.Close();
if (Connection.State != ConnectionState.Open)
Connection.Open();

Reader = objCommand.ExecuteReader();

if (Reader.HasRows == true)
{
label3.BackColor = Color.Green;
label3.Text = label2.Text = "وجود دارد";
boolCheckExistBook = true;
return boolCheckExistBook;

}
else
{
label3.BackColor = Color.Red;
label3.Text = "وجود ندارد";
boolCheckExistBook = false;
return boolCheckExistBook;
}
}
}
public trusteeshipRegister()
{
InitializeComponent();
}


private void button1_Click(object sender, EventArgs e)
{
using (SqlConnection objConnection = new SqlConnection(StrConnection))
{
if ((txtName.Text.Length > 0) && (txtFamilyName.Text.Length > 0) && (txtNameBook.Text.Length > 0) && (txtToDate_Masked.Text.Length > 0) && (txtDateAmanat_Masked.Text.Length > 0))
{
CheckForExistUser();
CheckExisBook();
if (boolCheckExistUsr == true && boolCheckExistBook == true)
{
int IdForBook = Int32.Parse(txtNumberKetab.Text );
int IdUser = Int32.Parse(txtIdozviat.Text);
try
{
SqlCommand objCommand = new SqlCommand();
objCommand.CommandType = CommandType.Text;
objCommand.Connection = objConnection;
objCommand.CommandText = "insert into SabteAmanat (BookName,BookSubject,author,Translator,FirstName, LastName,membershipID,Tozihat,DateAmanat,DateBack, IdBook) values (@ID,@BookName,@BookSubject,@author,@Translator,@F irstName,@LastName,@membershipID,@Tozihat,@DateAma nat,@DateBack,@IdBook)";
objCommand.Parameters.AddWithValue("@BookName", txtNameBook.Text);
objCommand.Parameters.AddWithValue("@BookSubject", txtSubjectbook.Text);
objCommand.Parameters.AddWithValue("@author", txtauthor.Text);
objCommand.Parameters.AddWithValue("@Translator", txtTranslator.Text);
objCommand.Parameters.AddWithValue("@FirstName", txtName.Text);
objCommand.Parameters.AddWithValue("@LastName", txtFamilyName.Text);
objCommand.Parameters.AddWithValue("@membershipID", IdUser);
objCommand.Parameters.AddWithValue("@Tozihat", txtDescribe.Text);
objCommand.Parameters.AddWithValue("@DateAmanat", txtDateAmanat_Masked.Text);
objCommand.Parameters.AddWithValue("@DateBack", txtToDate_Masked.Text);
objCommand.Parameters.AddWithValue("@IdBook", IdForBook);

if (objConnection.State != ConnectionState.Open)
objConnection.Open();

objCommand.ExecuteNonQuery();
objConnection.Close();
}
catch (SqlException ee)
{
MessageBox.Show(ee.Message);
}
MessageBox.Show("امانت در دیتابیس ذخیره شد");
}
else
{
MessageBox.Show("مقادیر وارد شده صحیح نمی باشند");
}


}
else
{
MessageBox.Show("لطفا جاهای خالی را پر کنید");
} objConnection.Close();
}
}
}
}

وقتی میخوام اینسرت کنم میگه مقادیر وارد شده صحیح نمی باشد(قسمت CheckExisBook()) !(مقادیر ابتدا چک میشوند اگر صحیح بود مقدار بولین ها ترو میشود)
در صورتی که هر چی وارد میکنم درسته
راستش تازه 2ماه و خوردی هست که کلا دارم کار میکنم بنابراین الگوریتمی که به ذهنم رسید همین کدی هست که دارید می بینید
پس اگه یه فکر بهتر هم دارید بگید
و بگید کجای کار مشکل داره ...

AliRezaPro
یک شنبه 29 شهریور 1388, 00:45 صبح
کسی نمیتونه کمک کنه؟خیلی واجبه

AliRezaPro
یک شنبه 29 شهریور 1388, 14:32 عصر
دوستان وارد یه دید به کد بندازند لطفا

M.YasPro
یک شنبه 29 شهریور 1388, 14:55 عصر
سلام دوست عزیز
توی لاین 29

RegisterUser where ID='" + IDForUser + "'AND
چون ID از نوع int هست نباید از ' ' استفاده کرد
همینطور لاین 67

AliRezaPro
یک شنبه 29 شهریور 1388, 22:51 عصر
من کد رو اینجوری تغییر دادم و ' ' رو گرفتم
(البته من تو برنامه های قبلی هم این مورد رو رعایت نکردم ولی بدون مشکل بود برام )
ولی بازم بلاک Else اجرا میشه و میگه مقادیر صحیح نیست (قسمت button1_Click)در صورتی که صحیح هست
من حس میکنم از DataReader هست
واسعه همین من 2 تا dataReader تعریف کردم ولی بازم درست نشد و بلاک الس اجرا میشه (یعنی یک دیتا ریدر برای تابع اولی و یک دیتا ریدر برای تابع دومی)
مقدار برگشتی 2 تابع 2 متغیر boolCheckExistUsr و boolCheckExistBook رو true میکنه
متغیر TRUE , boolCheckExistUsr میشه همیشه (یعنی خوب برسی میکنه )و لی متغیر boolCheckExistBook همیشه false میشه(در صورتی که من درست وارد میکنم)
بنظر شما از چیه؟خیلی دارم براش وقت میزارم کاش یه دری برامون باز شه از طرف دوستان !

AliRezaPro
دوشنبه 30 شهریور 1388, 01:10 صبح
بلخره بعد از 25-26 ساعت پای کامپیوتر بودن به نتیجه رسیدم(چشام داره در میاد از جاش)
اینکه کد بالا مشکلی نداره
من از قبل با کمک فرم های دیگه در جدول BookDetailsدر فیلد نام کتاب بصورت فارسی اینسرت کردبوده بودم
برای اینکه فارسی هست اینجا مشکلدار شد
این عکس ها رو ببینید
وقتی که من در جدول کتاب نام کتای رو a گذاشتم و چون بصورت انگلیسی بود مشکلی نداشت و جواب گرفتم
(توجه کنید که هم نام کتاب a و هم نام کتاب اندیشه ی اسلامی تو دیتایس بود)
http://www.imagehost.ro/pict/210010174ab69a3910631.jpg
ولی اینجا که من نام کتاب رو اندیشه ی اسلامی گرفتم نتونست بخونه
http://www.imagehost.ro/pict/210011334ab69a8562725.jpg
حالا من بای رفع این مشکل باید چیکار کنم؟
چون در برنامه ی من شاید بیشتر دادهای اینسرت شده فارسی باشند !
یعنی اگه فارسی باشه من به مشکل میخورم؟

kh1387
دوشنبه 30 شهریور 1388, 11:37 صبح
دوست خوبم
نمونه برنامه ات رو بذار

AliRezaPro
دوشنبه 30 شهریور 1388, 17:04 عصر
مشکلم حل ...