h.rezaee
پنج شنبه 24 اسفند 1391, 12:49 عصر
سلام به دوستان. چنتا سوال داشتم ممنون میشم اگه جواب بدین.
1. بنده از جدول های رابطه ای برای ذخیره اطلاعات در دیتابیس استفاده می کنم. مشکل اول بنده اینه که چه جوری برای جدول main که جدول اصلی هستش و همه 8 تا ستونش از نوع bigint هستش رو با یک آیدی مشخص، با هم برابر کنم.
برای مثل ، بنده یه فردی رو با مشخصات زیر قرار میدم.
نام : علی نام خانوادگی : احمدی نام پدر : ولی شماره شناسنامه :123 ش.م : 123 تاریخ تولد :1/7/71 .......
ببینید برای نام و نام خانوادگی و نام پدر جدولی قرار دادم به اسم nametbl که یه id داره ( که در تصویر پایین نوشته id ولی در جدولی که الان در دیتابیس قرار دادم به اسم idname ) هستش که key هستش و identity اون هم true هستش. و بقیه جداول هم به همین ترتیب که id اون به صورت key و identity = yes هستش.
حالا میخوام این مقادیر id رو که برای همه جدول ها قرار دادم رو در جدول main هم برابر قرار بدم تا رابطه درست برقرار بشه . در جدول main ، آیدی مربوط به جدول name به ستون nameid جدول main متصله! و بقیه هم به همین ترتیب. حالا این identity برای id جدول main بله میشه ولی نمی دونم چه جوری باید این identity رو هم دوباره برای بقیه مقادیر yes کنم تا همه مقادی بشه مثلا 1 تا بقیه کارا درسا از آب در آد؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟
2.بنده برای اتصال به دیتابیس از کوئری زیر استفاده می کنم.
Data Source=.\SQLEXPRESS;AttachDbFilename="vizhefajr.mdf";Integrated Security=True;Connect Timeout=30;User Instance=True
و این هم کدهای مربوط به ثبت اطلاعات در دیتابیس :
SqlConnection objconnection = new SqlConnection(textBoxX1.Text);
DataSet das = new DataSet();
DataView objdataview = new DataView();
SqlCommand com = new SqlCommand();
if (nametxt.Text == string.Empty & lnametxt.Text == string.Empty & fnametxt.Text == string.Empty & shnumtxt.Text == string.Empty)
{
MessageBox.Show("عبارت خود را وارد کنید.");
}
else
{
objconnection.Open();
com.Connection = objconnection;
com.CommandText = "Insert INTO nametbl " +
"(name, lname, fname) " +
"VALUES(@name, @lname, @fname);" +
"Insert INTO numtbl " +
"(shnum, mnum, birthday) " +
"VALUES(@shnum, @mnum, @birthday);" +
"Insert INTO phonetbl " +
"(phonenum, mobilenum) " +
"VALUES(@phonenum, @mobilenum);" +
"Insert INTO informationtbl " +
"(job, education, army) " +
"VALUES(@job, @education, @army);" +
"Insert INTO addresstbl " +
"(address) " +
"VALUES(@address);" +
"Insert INTO membertbl " +
"(dateozv, hozename, paygahname, filenum) " +
"VALUES(@dateozv, @hozename, @paygahname, @filenum);" +
"Insert INTO codetbl " +
"(byganicode) " +
"VALUES(@byganicode)" +
"Insert INTO maintbl " +
"(datesave) " +
"VALUES(@datesave)";
com.Parameters.AddWithValue("@name", nametxt.Text);
com.Parameters.AddWithValue("@lname", lnametxt.Text);
com.Parameters.AddWithValue("@fname", fnametxt.Text);
//Insert into NUMTBL
com.Parameters.AddWithValue("@shnum", shnumtxt.Text);
com.Parameters.AddWithValue("@mnum", mnumtxt.Text);
com.Parameters.AddWithValue("@birthday", yearbirthtxt.Text + '/' + monthbirthtxt.Text + '/' + datebirthtxt.Text);
//Insert into phonenum
com.Parameters.AddWithValue("@phonenum", phonenumtxt.Text);
com.Parameters.AddWithValue("@mobilenum", mobilenumtxt.Text);
//Insert into informationtbl
com.Parameters.AddWithValue("@job", jobtxt.Text);
com.Parameters.AddWithValue("@education", educationtxt.Text);
com.Parameters.AddWithValue("@army", armytxt.Text);
//Insert into addresstbl
com.Parameters.AddWithValue("@address", addresstxt.Text);
//Insert into membertbl
com.Parameters.AddWithValue("@dateozv", yearozvtxt.Text + '/' + monthozvtxt.Text + '/' + dateozvtxt.Text);
com.Parameters.AddWithValue("@hozename", hozenametxt.Text);
com.Parameters.AddWithValue("@paygahname", paygahnametxt.Text);
com.Parameters.AddWithValue("@filenum", filenumtxt.Text);
//Insert into biyganicode
com.Parameters.AddWithValue("@byganicode", biyganinum.Text);
//Insert into membertbl
com.Parameters.AddWithValue("@datesave", labelX1.Text);
try
{
com.ExecuteNonQuery();
MessageBox.Show("اطلاعات با موفقیت ثبت شد");
nametxt.Clear();
}
catch(SqlException sqlERR)
{
MessageBox.Show(sqlERR.Message);
}
}
مشکلش این هکه میزنه اطلاعات با موفقیت ثبت شد ولی در دیتابیس هیچ چیز ثبت نمیشه؟؟؟؟؟
البته این رو هم بگم که بانک اس کیو ال سرور 2008 سرویس پک 2 رو از طریق data/Add new database source ..... برنامه ویژوال استودیو 2010 به برنامه اضافه کردم. و از داخل هم گزینه Entity data ..... رو انتخاب کردم.
1. بنده از جدول های رابطه ای برای ذخیره اطلاعات در دیتابیس استفاده می کنم. مشکل اول بنده اینه که چه جوری برای جدول main که جدول اصلی هستش و همه 8 تا ستونش از نوع bigint هستش رو با یک آیدی مشخص، با هم برابر کنم.
برای مثل ، بنده یه فردی رو با مشخصات زیر قرار میدم.
نام : علی نام خانوادگی : احمدی نام پدر : ولی شماره شناسنامه :123 ش.م : 123 تاریخ تولد :1/7/71 .......
ببینید برای نام و نام خانوادگی و نام پدر جدولی قرار دادم به اسم nametbl که یه id داره ( که در تصویر پایین نوشته id ولی در جدولی که الان در دیتابیس قرار دادم به اسم idname ) هستش که key هستش و identity اون هم true هستش. و بقیه جداول هم به همین ترتیب که id اون به صورت key و identity = yes هستش.
حالا میخوام این مقادیر id رو که برای همه جدول ها قرار دادم رو در جدول main هم برابر قرار بدم تا رابطه درست برقرار بشه . در جدول main ، آیدی مربوط به جدول name به ستون nameid جدول main متصله! و بقیه هم به همین ترتیب. حالا این identity برای id جدول main بله میشه ولی نمی دونم چه جوری باید این identity رو هم دوباره برای بقیه مقادیر yes کنم تا همه مقادی بشه مثلا 1 تا بقیه کارا درسا از آب در آد؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟
2.بنده برای اتصال به دیتابیس از کوئری زیر استفاده می کنم.
Data Source=.\SQLEXPRESS;AttachDbFilename="vizhefajr.mdf";Integrated Security=True;Connect Timeout=30;User Instance=True
و این هم کدهای مربوط به ثبت اطلاعات در دیتابیس :
SqlConnection objconnection = new SqlConnection(textBoxX1.Text);
DataSet das = new DataSet();
DataView objdataview = new DataView();
SqlCommand com = new SqlCommand();
if (nametxt.Text == string.Empty & lnametxt.Text == string.Empty & fnametxt.Text == string.Empty & shnumtxt.Text == string.Empty)
{
MessageBox.Show("عبارت خود را وارد کنید.");
}
else
{
objconnection.Open();
com.Connection = objconnection;
com.CommandText = "Insert INTO nametbl " +
"(name, lname, fname) " +
"VALUES(@name, @lname, @fname);" +
"Insert INTO numtbl " +
"(shnum, mnum, birthday) " +
"VALUES(@shnum, @mnum, @birthday);" +
"Insert INTO phonetbl " +
"(phonenum, mobilenum) " +
"VALUES(@phonenum, @mobilenum);" +
"Insert INTO informationtbl " +
"(job, education, army) " +
"VALUES(@job, @education, @army);" +
"Insert INTO addresstbl " +
"(address) " +
"VALUES(@address);" +
"Insert INTO membertbl " +
"(dateozv, hozename, paygahname, filenum) " +
"VALUES(@dateozv, @hozename, @paygahname, @filenum);" +
"Insert INTO codetbl " +
"(byganicode) " +
"VALUES(@byganicode)" +
"Insert INTO maintbl " +
"(datesave) " +
"VALUES(@datesave)";
com.Parameters.AddWithValue("@name", nametxt.Text);
com.Parameters.AddWithValue("@lname", lnametxt.Text);
com.Parameters.AddWithValue("@fname", fnametxt.Text);
//Insert into NUMTBL
com.Parameters.AddWithValue("@shnum", shnumtxt.Text);
com.Parameters.AddWithValue("@mnum", mnumtxt.Text);
com.Parameters.AddWithValue("@birthday", yearbirthtxt.Text + '/' + monthbirthtxt.Text + '/' + datebirthtxt.Text);
//Insert into phonenum
com.Parameters.AddWithValue("@phonenum", phonenumtxt.Text);
com.Parameters.AddWithValue("@mobilenum", mobilenumtxt.Text);
//Insert into informationtbl
com.Parameters.AddWithValue("@job", jobtxt.Text);
com.Parameters.AddWithValue("@education", educationtxt.Text);
com.Parameters.AddWithValue("@army", armytxt.Text);
//Insert into addresstbl
com.Parameters.AddWithValue("@address", addresstxt.Text);
//Insert into membertbl
com.Parameters.AddWithValue("@dateozv", yearozvtxt.Text + '/' + monthozvtxt.Text + '/' + dateozvtxt.Text);
com.Parameters.AddWithValue("@hozename", hozenametxt.Text);
com.Parameters.AddWithValue("@paygahname", paygahnametxt.Text);
com.Parameters.AddWithValue("@filenum", filenumtxt.Text);
//Insert into biyganicode
com.Parameters.AddWithValue("@byganicode", biyganinum.Text);
//Insert into membertbl
com.Parameters.AddWithValue("@datesave", labelX1.Text);
try
{
com.ExecuteNonQuery();
MessageBox.Show("اطلاعات با موفقیت ثبت شد");
nametxt.Clear();
}
catch(SqlException sqlERR)
{
MessageBox.Show(sqlERR.Message);
}
}
مشکلش این هکه میزنه اطلاعات با موفقیت ثبت شد ولی در دیتابیس هیچ چیز ثبت نمیشه؟؟؟؟؟
البته این رو هم بگم که بانک اس کیو ال سرور 2008 سرویس پک 2 رو از طریق data/Add new database source ..... برنامه ویژوال استودیو 2010 به برنامه اضافه کردم. و از داخل هم گزینه Entity data ..... رو انتخاب کردم.