PDA

View Full Version : مبتدی: قرار دادن متغیر در بین رشته



سعید کشاورز
پنج شنبه 29 فروردین 1392, 22:47 عصر
سلام دوستان..
من میخام یه دیتابیس رو با 100 تا رکورد پر کنم ...
از حلقه For استفاده کردم اما یه مشکلی دارم...از کد زیر استفاده میکنم

for (int i = 1; i <= 100; i++)
{

OleDbConnection con = new OleDbConnection();
con.ConnectionString = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=|DataDirectory|\Database2.accdb";
OleDbCommand cmd = new OleDbCommand();
cmd.CommandText = "insert into person(pname,pfamily,pmobile) values('Name','Family','Mobile')";
cmd.Connection = con;
con.Open();
cmd.ExecuteNonQuery();
con.Close();
}
حالا میخام توی قسمت Values دستور insert into مقدار متغیر حلقه ( i ) رو به مقدار اضافه کنم که مثلا اینجوری بشه رکورد ها:
Name1 Family1 Mobile 1
Name2 Family2 Mobile 2
.
.
.
و الی آخر
..
کسی میتونه کمکم کنه؟
فایل پروژه هم ضمیمه میکنم با دیتابیس که راحت باشین واسه کمک کردن.
ممنونم

aliasghar2
پنج شنبه 29 فروردین 1392, 22:57 عصر
این خط رو این طوری بنویس
cmd.CommandText = "insert into person(pname,pfamily,pmobile) values('Name+i.tostring()+"','Family"+i.tostring()+"','Mobile"+i.tostring()+"')";

سعید کشاورز
پنج شنبه 29 فروردین 1392, 23:01 عصر
این خط رو این طوری بنویس
cmd.CommandText = "insert into person(pname,pfamily,pmobile) values('Name+i.tostring()+"','Family"+i.tostring()+"','Mobile"+i.tostring()+"')";

اینم باز خطا داره...اگه فایل دانلود کنی تست کنی ممنون میشم

group45
پنج شنبه 29 فروردین 1392, 23:03 عصر
وقتی قراره 100 تا رکورد یهو درج بشه چرا میاید باز و بسته شدن دیتابیس رو تو حلقه میزارید؟
قبل حلقه تعاریفتون رو انجام بدید و داخل حلقه دستورتون رو با string.format تولید کنید و کامند رو اجرا کنید و بعد پایان حلقه دیتابیس رو ببندید.

سعید کشاورز
پنج شنبه 29 فروردین 1392, 23:10 عصر
وقتی قراره 100 تا رکورد یهو درج بشه چرا میاید باز و بسته شدن دیتابیس رو تو حلقه میزارید؟
قبل حلقه تعاریفتون رو انجام بدید و داخل حلقه دستورتون رو با string.format تولید کنید و کامند رو اجرا کنید و بعد پایان حلقه دیتابیس رو ببندید.

بهینه بودن کد زیاد مهم نیست..مهم اینه که بتونم یه جدول رو پر کنم با رکورد..
با این دستوری هم که گفتی متاسفانه آشنا نیستم..الان با این دستوری که نوشتم نمیشه اینجوری که من میخام رکوردها درج بشه؟

aliasghar2
پنج شنبه 29 فروردین 1392, 23:13 عصر
OleDbConnection con = new OleDbConnection();
con.ConnectionString = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=|DataDirectory|\Database2.accdb";
OleDbCommand cmd = new OleDbCommand();
cmd.Connection = con;
con.Open();
for (int i = 1; i <= 100; i++)
{


cmd.CommandText =string.Format( "insert into person(pname,pfamily,pmobile) values('Name{0}','Family{0}','Mobile{0}')",i.ToString());


cmd.ExecuteNonQuery();

}
con.Close();

group45
پنج شنبه 29 فروردین 1392, 23:25 عصر
اینو یه امتحان بکنید ببینید جواب میگیرید؟
103042