PDA

View Full Version : مبتدی: مشکل در خواندن اطلاعات از TextBox داینامیک



javadmahmoodi
دوشنبه 08 خرداد 1396, 12:35 عصر
سلام
من با استفاده از کد زیر چندین textBoxt ایجاد کردم :


TextBox text2 = new TextBox();
text2.Location = new Point(210, i * 25);

this.Controls.Add(text2);

حالا میخوام اطلاعاتی که کاربر وارد کرده رو تو دیتابیس ذخیره کنم !!!
مشکلی تو دیتابیس ندارم ولی تو خوندن تکست از تکس باکس مشکل دارم !!!
لطفا اساتید راهنمایی بفرمایید
باتشکر

group45
دوشنبه 08 خرداد 1396, 12:53 عصر
دقیقا مشکلتون چیه؟

javadmahmoodi
دوشنبه 08 خرداد 1396, 13:35 عصر
دقیقا مشکلتون چیه؟

مثلا 20 تا تکست باکس میسازم با کد بالا به صورت اتوماتیک ... میخوام تکست های اون تکست باکس ها رو داخل یک ارایه ذخیره کنم !!! ولی نمیدونم اندیس داره یا هر چیزی که من بتونم پیمایش کنم تکست باکس هارو و در ارایه ذخیره کنم ...

امیدوارم متوجه شده باشین

با تشکر

ژیار رحیمی
دوشنبه 08 خرداد 1396, 21:08 عصر
سلام
TextBox ها رو بصورت آرایه تعریف کن مشکلت حل میشه.

var arr = new TextBox[10];
for (var i = 0; i < arr.Length; i++)
{
arr[i] = new TextBox();
arr[i].Location = new Point(210, i * 25);
this.Controls.Add(arr[i]);
}

javadmahmoodi
سه شنبه 09 خرداد 1396, 09:49 صبح
سلام
TextBox ها رو بصورت آرایه تعریف کن مشکلت حل میشه.

var arr = new TextBox[10];
for (var i = 0; i < arr.Length; i++)
{
arr[i] = new TextBox();
arr[i].Location = new Point(210, i * 25);
this.Controls.Add(arr[i]);
}


با تشکر از راهنماییتون

فقط چجوری میتونم var سراسری کنم تا همه جای کدم بتونم استفاده کنم ؟

ژیار رحیمی
سه شنبه 09 خرداد 1396, 09:55 صبح
در ابتدای شروع کلاس form کد رو بنویس

TextBox[] arr = new TextBox[10];

javadmahmoodi
سه شنبه 09 خرداد 1396, 10:15 صبح
در ابتدای شروع کلاس form کد رو بنویس

TextBox[] arr = new TextBox[10];


ممنون از رهنماییتون

من تو ی قسمت از کد این تکست باکس رو پر میکنم و نمایش میدم

در قسمت دیگه کد میخوام بعد از اینکه کاربر تکست رو تغیر داد و با زدن دکمه save داخل دیتابیس ذخیره کنه ولی این ارور رو میده

String q2 = "UPDATE " + s + " Set " + a + "='"+ text1[1].Text +"' where Name='"+btn+"';";

Object reference not set to an instance of an object.

ژیار رحیمی
سه شنبه 09 خرداد 1396, 10:21 صبح
دوست گرامی برای دسترسی به آرایه ای از تکست باکس ها باید نام آرایه رو بنویسی نه نام تکست باکس.قبل از انجام هر پروژه ای ،شما بهتره دانش خود در زمینه برنامه نویسی را ارتقا بدی با این اوصاف با نوشتن هر خط کد نویسی شما به مشکل بر خواهی خورد.

String q2 = "UPDATE " + s + " Set " + a + "='"+ arr[1].Text +"' where Name='"+btn+"';";

javadmahmoodi
سه شنبه 09 خرداد 1396, 10:27 صبح
دوست گرامی برای دسترسی به آرایه ای از تکست باکس ها باید نام آرایه رو بنویسی نه نام تکست باکس.قبل از انجام هر پروژه ای ،شما بهتره دانش خود در زمینه برنامه نویسی را ارتقا بدی با این اوصاف با نوشتن هر خط کد نویسی شما به مشکل بر خواهی خورد.

String q2 = "UPDATE " + s + " Set " + a + "='"+ arr[1].Text +"' where Name='"+btn+"';";



استاد عزیز من اسم ارایه ام گذاشتم text1

TextBox[] text1 = new TextBox[65];


ارور رفرنس رو مطالعه فرمودین ؟



Object reference not set to an instance of an object.

ژیار رحیمی
سه شنبه 09 خرداد 1396, 11:25 صبح
شما باید در فرم لود TextBox ها رو به فرم اضافه کنی بوسیله حلقه for که نمونه آبجکت های ان اضافه شود .الان این خطا مربوط به null بودن object های درون آرایه (تکست باکس ها)هست .

public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
TextBox[] textBoxsArray=new TextBox[10];
private void Form1_Load(object sender, EventArgs e)
{
for (int i = 0; i < textBoxsArray.Length; i++)
{
textBoxsArray[i] = new TextBox();
textBoxsArray[i].Location = new Point(210, i * 25);
this.Controls.Add(textBoxsArray[i]);
}
}


private void button1_Click(object sender, EventArgs e)
{
String q2 = "UPDATE " + s + " Set " + a + "='" + textBoxsArray[1].Text + "' where Name='" + btn + "';";
}
}

javadmahmoodi
سه شنبه 09 خرداد 1396, 11:45 صبح
شما باید در فرم لود TextBox ها رو به فرم اضافه کنی بوسیله حلقه for که نمونه آبجکت های ان اضافه شود .الان این خطا مربوط به null بودن object های درون آرایه (تکست باکس ها)هست .

public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
TextBox[] textBoxsArray=new TextBox[10];
private void Form1_Load(object sender, EventArgs e)
{
for (int i = 0; i < textBoxsArray.Length; i++)
{
textBoxsArray[i] = new TextBox();
textBoxsArray[i].Location = new Point(210, i * 25);
this.Controls.Add(textBoxsArray[i]);
}
}


private void button1_Click(object sender, EventArgs e)
{
String q2 = "UPDATE " + s + " Set " + a + "='" + textBoxsArray[1].Text + "' where Name='" + btn + "';";
}
}


شما لطف کنید کد رو بررسی بفرمایید



public partial class Form13 : Form
{
public Form13()
{
InitializeComponent();
}
SQLiteConnection con = new SQLiteConnection("Data Source=TehranRED.JM;Version=3;");
string q1, s, btn,a;
TextBox[] text1 = new TextBox[68];
String[] t = new string[68];
public void check(String q1, String A, string B, string C, string D)
{


SQLiteCommand cmd1 = new SQLiteCommand(q1, con);
con.Open();
SQLiteDataReader reader = cmd1.ExecuteReader();

int i = 0;
while (reader.Read())
{



Label text = new Label();
text.Text = reader["name"].ToString();
text.Location = new Point(10, reader.StepCount * 25);
// tabControl1.Controls.Add(text);
this.Controls.Add(text);


text1 = new TextBox[reader.StepCount];
if (A != "")
{
text1[i] = new TextBox();
text1[i].Text = reader[A].ToString();

a = A;
text1[i].Location = new Point(110, reader.StepCount * 25);
this.Controls.Add(text1[i]);
}
i++;

Button button = new Button();
button.Text = s;
button.Location = new Point(550, reader.StepCount * 25);
button.Click += new EventHandler(button_click);
this.Controls.Add(button);


con.Close();

}

void button_click(object sender, EventArgs e)
{
String q3 = "select name from "+s;
SQLiteCommand cmd1 = new SQLiteCommand(q3, con);
con.Open();
SQLiteDataReader reader = cmd1.ExecuteReader();


int c = 0;
while (reader.Read())
{
if (c == 67)
{
break;
}
btn = reader["name"].ToString();
String q2 = "UPDATE " + s + " Set " + a + "="+ t[c] +" where Name='"+btn+"';";
SQLiteCommand cmd2 = new SQLiteCommand(q2, con);
SQLiteDataReader reader2 = cmd2.ExecuteReader();



c++;


}


con.Close();
MessageBox.Show("ok");
this.Controls.Clear();
this.Controls.Add(comboBox1);
this.Controls.Add(button1);
}


با تشکر

javadmahmoodi
شنبه 20 خرداد 1396, 12:07 عصر
اساتید محترم کسی هست منو راهنمایی کنه ؟؟؟؟

ممنون

CsharpNevisi
شنبه 20 خرداد 1396, 13:31 عصر
نیازی به ارایه و این چیزا نداری ... ارایه رو حذف کن .. this.Controls خودش برات یه آرایست دیگه .. از همین میتونی استفاده کنی .. اصلا ارایه ای که گذاشتی اشتباهه ... و اما اشتباه اصلیت اینجاست
text1 = new TextBox[reader.StepCount]
نباید تو هر قدم این کارو انجام بدی که ... چون مثلا تکست باکس خونه 1 نمونه سازی میشه بعد تو قدم دوم دوباره ارایه نیو میشه بعدش تکست باکس 1 خراب میشه