PDA

View Full Version : سوال: دسترسی به عناصر یک آرایه از طریق اندیس مورد نظر



sara1368
چهارشنبه 09 تیر 1389, 21:18 عصر
سلام دوستان
من یه مشکل کوچک دارم و خیلی خوشحال میشم کمک کنین

private void button1_Click(object sender, EventArgs e)
{
string[] strfriends = new string[5];
strfriends[0] = "nima";
strfriends[1] = "saed";
strfriends[2] = "mohammad";
strfriends[3] = "amin";
strfriends[4] = "arman";
listFriend.Items.Add(strfriends[3]);
}
اینجوری فقط اسمی که توی ارایه نوشتم نشون داده میشه.حالا من میخوام یه تکست باکس بسازم که هر شماره ای وارد میکنم همون اسم رو برام بنویسه

Ir.WebDeveloper
چهارشنبه 09 تیر 1389, 21:33 عصر
سلام دوستان

من یه مشکل کوچک دارم و خیلی خوشحال میشم کمک کنین


private void button1_Click(object sender, EventArgs e)




{

string[] strfriends = new string[5];
strfriends[0] = "nima";
strfriends[1] = "saed";
strfriends[2] = "mohammad";
strfriends[3] = "amin";
strfriends[4] = "arman";
listFriend.Items.Add(strfriends[3]);
}




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


تو رویداد textchange تکست باکس بنویس:

listFriend.Items.Add(strfriends[int.parse(TextBox.text)]);

sara1368
چهارشنبه 09 تیر 1389, 21:39 عصر
تو رویداد textchange تکست باکس بنویس:

listFriend.Items.Add(strfriends[int.parse(TextBox.text)]);
[/right][/quote]
نشد..
ممکنه خودتون یک بار برنامه رو بنویسین...

mmd2009
چهارشنبه 09 تیر 1389, 22:06 عصر
با سلام

اینم یک مثال ساده

البته اگر چیزی که شما گفتید رو درست متوجه شده باشم

Majid&Masoud
چهارشنبه 09 تیر 1389, 22:12 عصر
سلام
کد همون چیزیه که دوستمون نوشته.اگه میخواین با کلیک Button نمایش داده بشه این کد رو بنویسید


privatevoid button1_Click(object sender, EventArgs e)
{
string[] strfriends = newstring[5];
strfriends[0] = "nima";
strfriends[1] = "saed";
strfriends[2] = "mohammad";
strfriends[3] = "amin";
strfriends[4] = "arman";
listFriend.Items.Add(strfriends[(Convert.ToInt32(txt1.Text))]);
}


توی Textchanged هم دقیقا همینو میتونید بنویسید.فقط مقداردهی آرایه رو تو Form_Loadانجام بدید

sara1368
چهارشنبه 09 تیر 1389, 22:19 عصر
با سلام

اینم یک مثال ساده

البته اگر چیزی که شما گفتید رو درست متوجه شده باشم
بله تقریبا همین رو می خواستم فقط میخواستم با زدن دکمه این کار انجام بشه که الان فکر میکنم با راهنمایی شما بتونم.
فقط trimنمیدونم برا چیه؟؟[int.Parse(textBox1.Text.Trim())])
ممنون

mmd2009
چهارشنبه 09 تیر 1389, 22:27 عصر
این trim() باعث میشه که اگر عدد 2 رو وارد کردی و بعدش چند فضای خالی گذاشتی اونو در نظر نگیره و کلا کار این trim() اینه که فضای خالی سمت چپ و راست نوشته رو در نظر نمی گیره

sara1368
پنج شنبه 10 تیر 1389, 10:45 صبح
این trim() باعث میشه که اگر عدد 2 رو وارد کردی و بعدش چند فضای خالی گذاشتی اونو در نظر نگیره و کلا کار این trim() اینه که فضای خالی سمت چپ و راست نوشته رو در نظر نمی گیره

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

sara1368
یک شنبه 13 تیر 1389, 14:35 عصر
بازم سوال؟؟؟
من یکdataGridView رو که یک tableداره شامل id,name,family قرار دادم و یکtextbox و buttonقرار دادم حالا میخوام با زدن دکمه و چیزی که در تکس باکس نوشتم به نام اسمی اضافه بشه یا پاک بشه یا sortبشه اما نمیدونم چه جوری کد sqlو سی شارپ رو با هم بنویسم..لطفا کدش رو بگین چه جوری باید بنویسم در همین مورد و اگه مثال ساده ای که تمام گزینه ها رو داشته باشه بذارین ممنون میشم..

mmd2009
یک شنبه 13 تیر 1389, 14:38 عصر
میشه یه بار دیگه سوالتون رو بخونید و یه طوری دیگه مطرحش کنید...

sara1368
یک شنبه 13 تیر 1389, 14:42 عصر
کلا میخوام بدونم اگه بخوام با زدن دکمه چیزی رو که در تکس باکسم نوستم به جدول دیتا گریدم اضافه یا حذف یا سورت کنم چه جوری باید کدش رو بنویسم؟؟؟؟؟؟

mmd2009
یک شنبه 13 تیر 1389, 14:47 عصر
اگه می خواهید اضافه کنید که باید کد درج رو براش بنویسید

اگر می خواهید حذفش کنید که باید کد حذف رو برای دکمه بذارید که بر اساس تکست باکس یه رکورد رو حذف بکنه

و برای مرتب کردن هم بهتره از ds , bs استفاده بکنید

sara1368
یک شنبه 13 تیر 1389, 14:50 عصر
اگه می خواهید اضافه کنید که باید کد درج رو براش بنویسید

اگر می خواهید حذفش کنید که باید کد حذف رو برای دکمه بذارید که بر اساس تکست باکس یه رکورد رو حذف بکنه

و برای مرتب کردن هم بهتره از ds , bs استفاده بکنید




خوب منم دنبال کدش هستم دیگه...؟؟؟اینا رو میدونم کدش رو نمیدونم و اینکه ترتیبش باید چه جوری باشه!!

mmd2009
یک شنبه 13 تیر 1389, 14:55 عصر
به این تاپیک مراجعه کنید


http://www.barnamenevis.org/forum/showthread.php?t=220506&highlight=%D8%AF%D8%B1%D8%AC+sql

sara1368
یک شنبه 13 تیر 1389, 15:15 عصر
به این تاپیک مراجعه کنید


http://www.barnamenevis.org/forum/showthread.php?t=220506&highlight=%D8%AF%D8%B1%D8%AC+sql

اینا کلی هستن...:ناراحت::افسرده:

RIG000
یک شنبه 13 تیر 1389, 15:52 عصر
اون برنامه ای که دادم کمکت نکرد اصلا" دیدیش؟ البته بانک داره garid خالی نیست .

RIG000
یک شنبه 13 تیر 1389, 16:56 عصر
http://www.4shared.com/file/-g7oQm2f/SimpleDBWork-Final.html
برای اینکه یکم یا درج و حذف و .... اشنا بشی باید بدونی که کد های sql اینکار رو میکنن که داخل "" هستن excutenonquery این کد ها رو از طریقه برنامه اجرا میکنه رو بانک . امیدوارم بقیش رو بهتر متوجه بشی خودت

sara1368
دوشنبه 14 تیر 1389, 18:26 عصر
این کدیه که تا حالا نوشتم اما میخوام از تکس باکس بخونه و با دکمه تغییراتو بده .کمکککککککککک

public partial class Form1 : Form
{
public Form1()
{

InitializeComponent();
}

private void Form1_Load(object sender, EventArgs e)
{
// TODO: This line of code loads data into the 'saraDataSet.T1' table. You can move, or remove it, as needed.
this.t1TableAdapter.Fill(this.saraDataSet.T1);

}


private void button1_Click(object sender, EventArgs e)
{
SqlConnection conn = null;
conn = new
SqlConnection("Server=.;DataBase=sara;Integrated Security=SSPI");
conn.Open();
SqlCommand cmd = new SqlCommand("select * from t1 ", conn);
SqlDataReader rdr = null;


{
// open the connection
conn.Open();


rdr = cmd.ExecuteReader();

while (rdr.Read())
{

string num = (string)rdr["شماره"];
string name = (string)rdr["نام"];
string family = (string)rdr["فامیلی"];

RIG000
دوشنبه 14 تیر 1389, 18:32 عصر
با این کد که فقط میتونی اطلاعات رو بخونی سیستم این کد برای خوندن هست نه اضافه کردن و .....

mmd2009
دوشنبه 14 تیر 1389, 18:33 عصر
با سلام

به جای کد زیر




SqlCommand cmd = new SqlCommand("select * from t1 ", conn);




از این کد استفاده بکنید





SqlCommand cmd = new SqlCommand("select * from t1 where نام فیلد = '" + textbox1.text+"'", conn);



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

sara1368
دوشنبه 14 تیر 1389, 18:35 عصر
ای خدااااااااااااااا پس من دارم چی میگم ؟؟؟
منم میخوام با یه تکس باس و دکمه اضافه کنه و یا حذف کنه دیگه.اگه این کارارو میکرد که دیگه سوالی نمیذاشتم
کمکی نمیخواستم..اما این کارا رو نمیدونم چه جوری باید انجام بده.................................

RIG000
دوشنبه 14 تیر 1389, 18:36 عصر
راستش من اصلا سوال رو نمی فهمم اگه میخای یاد بگیری که چی بنویسی باید بخونی و برنامه های ساده رو اجرا کنی . مثل منم تنبلی نکنی .
درضمن کد mmd رو اجر ا کن ببین جواب چیه ؟ منظورت همون بود؟

sara1368
دوشنبه 14 تیر 1389, 18:39 عصر
با سلام

به جای کد زیر




SqlCommand cmd = new SqlCommand("select * from t1 ", conn);


از این کد استفاده بکنید





SqlCommand cmd = new SqlCommand("select * from t1 where نام فیلد = '" + textbox1.text+"'", conn);

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

textbox1رو نمیشناسه.error میده

mmd2009
دوشنبه 14 تیر 1389, 18:54 عصر
میدونید تکست باکس چیه؟؟؟!!!

خب وقتی نمیشناسه یعنی اینکه اصلا تکس باکسی نداری .

یک تکست باکس بذار تو برنامت و این کد رو بذار




"select * from t1 where نام فیلد = '" + textbox1.text+"'"



معنی این دستور یعنی :

انتخاب کن همه ی فیلد ها جدول t1 رو بر اساس نام فیلد( یکی از فیلدهای بانکتون) که مقدار برابر باشه با مقداری که تو تکست باکس هست

sara1368
دوشنبه 14 تیر 1389, 18:57 عصر
میدونید تکست باکس چیه؟؟؟!!!

خب وقتی نمیشناسه یعنی اینکه اصلا تکس باکسی نداری .

یک تکست باکس بذار تو برنامت و این کد رو بذار




"select * from t1 where نام فیلد = '" + textbox1.text+"'"

معنی این دستور یعنی :

انتخاب کن همه ی فیلد ها جدول t1 رو بر اساس نام فیلد( یکی از فیلدهای بانکتون) که مقدار برابر باشه با مقداری که تو تکست باکس هست
نه به خدااااااااا . تکس باکس دارم اما این نمیشناسه..نمیدونم چرا؟؟؟
چون اینم امتحان کردم

textBox1.Text = "";
اگه میخواست کلا نشناسه اینم نمیشناخت اما با بودن این کد مشکلی نداره فقط تو کدی که شما گفتین نمیشناسه

RIG000
دوشنبه 14 تیر 1389, 18:57 عصر
چرا text box گذاشته اما ویزاردی کار کرده اگه اشتباه نکنم برو رو textbox که از طریق ویزارد وارد کردی اسمش باید همچین چیزی باشه idTextBox تو نام تکست ببین

RIG000
دوشنبه 14 تیر 1389, 19:00 عصر
یه کاری کن Error رو بگو چی هست ؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟

sara1368
دوشنبه 14 تیر 1389, 19:01 عصر
چرا text box گذاشته اما ویزاردی کار کرده اگه اشتباه نکنم برو رو textbox که از طریق ویزارد وارد کردی اسمش باید همچین چیزی باشه idTextBox تو نام تکست ببین
نه.اسمشم قبلا چک کرده بودم دقیقا textbox1
اگه نبود که این کدم باید نمیشناخت..اما میشناسه:افسرده:

textBox1.Text = "";

RIG000
دوشنبه 14 تیر 1389, 19:04 عصر
erroresh دقیقا چیه همونو بردار بنویس اینجا . در ضمن نیاز به کتاب هاشمیان یا .... داری که بیشتر با مفاهیم اشنا شی تا بعدا" سر در گم نشی

sara1368
دوشنبه 14 تیر 1389, 19:07 عصر
Error 1 The name 'textbox1' does not exist in the current context
کتاب هاشمیان رو دارم اما در این مورد خیلی گشتم اما چیزی ننوشته بود

RIG000
دوشنبه 14 تیر 1389, 19:11 عصر
میشه همین برنامه رو بذاری ؟ اینو نوشته یعنی همچین چیزی رو نداری. حالا میگی دارم!!!! برنامه رو ضمیمه کن ببینم .

sara1368
دوشنبه 14 تیر 1389, 20:26 عصر
این برنامه نصفه که کاری انجام نمیده جز خوندن .هر کی میتونه سوالمو جواب بده لطفا تغییرات رو بدین و دوباره upکنید
http://www.4shared.com/file/40gdivsn/hey.html

mehrsa_fr
دوشنبه 14 تیر 1389, 20:49 عصر
اشتباه تایپی دارید دقت کنید


SqlCommand cmd = newSqlCommand("select * from t1 where = '" + textBox1.Text + "'", conn);

جایگزین کنید درست میشه

sara1368
دوشنبه 14 تیر 1389, 21:00 عصر
اشتباه تایپی دارید دقت کنید


SqlCommand cmd = newSqlCommand("select * from t1 where = '" + textBox1.Text + "'", conn);
جایگزین کنید درست میشه
بله درسته دیگه error نداره اما هنوزم به جوابم نرسیدم.چه جوری میتونم با استفاده از تکست باکسم حذف یا درج انجام بدم.کدش رو میخوام...
لطفا تغییراتی رو که باید بدم یا کدش رو بنویسید یا بعد از اجرا شدن upکنین

Mohandes2009
دوشنبه 14 تیر 1389, 21:09 عصر
سلام دوستان

من یه مشکل کوچک دارم و خیلی خوشحال میشم کمک کنین


private void button1_Click(object sender, EventArgs e)




{

string[] strfriends = new string[5];
strfriends[0] = "nima";
strfriends[1] = "saed";
strfriends[2] = "mohammad";
strfriends[3] = "amin";
strfriends[4] = "arman";
listFriend.Items.Add(strfriends[3]);
}




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


بزار داخل Swich کار ینداره که :چشمک:

Mohandes2009
دوشنبه 14 تیر 1389, 21:11 عصر
textbox1رو نمیشناسه.error میده
چون textbox1 از نوع string هست تبدیل که به int با Convert.ToInt32(textbox1.text);

mehrsa_fr
دوشنبه 14 تیر 1389, 21:18 عصر
شما میتونین از textbox.databinding استفاده کنید یه سرچ بکنی میتونی پیدا کنی

sara1368
دوشنبه 14 تیر 1389, 21:36 عصر
بزار داخل Swich کار ینداره که :چشمک:
[/right]
مهندس این موضوع مال چند روز پیشه ..
الان سوال یه چیز دیگه است اون که حل شد

Mohandes2009
دوشنبه 14 تیر 1389, 21:39 عصر
مهندس این موضوع مال چند روز پیشه ..
الان سوال یه چیز دیگه است اون که حل شد
سوال چیه؟ بگو:متفکر:

sara1368
دوشنبه 14 تیر 1389, 21:47 عصر
سوال چیه؟ بگو:متفکر:
اگه نوشته های قبلی رو بخونین متوجه میشید.
الان دنبال اینم که با استفاده از یه تکست باکس بتونم به دیتا گریدم چیزی درج یا حئف کنم.در پست های قبلی برنامه نصفه که فقط میخونه رو upکردم لینکش هست میتونین dlکنین واگه میدونین سوال منو جواب بدینوالبته نه زبونی...با کد یا تغییر دادن برنامه و دوبارهupکردنش...

mehrsa_fr
دوشنبه 14 تیر 1389, 21:51 عصر
SqlConnection con = newSqlConnection(@"Data Source.;Initial Catalog=Tell;User Id=sa;Password=123 ");
SqlDataAdapter ada = newSqlDataAdapter();
DataSet ds = newDataSet();
ada.SelectCommand = newSqlCommand("select * from Telltbl", con);
SqlCommandBuilder b = newSqlCommandBuilder(ada);
ada.InsertCommand = b.GetInsertCommand();
ada.DeleteCommand = b.GetDeleteCommand();
ada.UpdateCommand = b.GetUpdateCommand();
ada.Fill(ds);
TextBox.DataBindings.Add(newBinding("Text", ds.Tables[0], "TName"));
BindingContext[ds.Tables[0]].EndCurrentEdit();
ada.Update(ds);
BindingContext[ds.Tables[0]].AddNew();

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

sara1368
دوشنبه 14 تیر 1389, 22:02 عصر
امیدوارم متوجه بشی[/quote]

امیدوار نباشین:اشتباه: چون من عین این کدها رو بارها دیدم اما داخل خود این برنامه نتونستم به کارش ببرم.وقتی مشکلم حل میشه که داخل همین برنامه بدونم و بتونم کار هایی رو که می خوام انجام بدم....:ناراحت:

mehrsa_fr
دوشنبه 14 تیر 1389, 22:05 عصر
کجاشو متوجه نشدید
بهتره جای گزاری کنید و trace کنید هر جا متوجه نشدید سوال کنید
خودتون رو به کد های آماده عادت ندید

zaniar_vb6
دوشنبه 14 تیر 1389, 23:13 عصر
سلام
برای نامبرینگ و بولت به مشکل برخوردم.
ldo,hl fn,kl ][,vd ;hv ld;ki
لطفا اگر ایده یا کدی دارید عنوان کنید .
چگونه می توان پنجره ای مانند INSERT sumbole را فراخوانی کرد
ممنون میشم به این 3 سوال پاسخ بدین

RIG000
دوشنبه 14 تیر 1389, 23:19 عصر
همه چی واضح هست چون sql نصب ندارم مجبور شدم اینکار و کنم فقط کپی پست کن .
تو تو جدولت 3 تا فیلد داری به نام های id و name و family .
id رو auto number بذار تو Datatype جدولت .
نام و فامیلی رو تکست بذار .
حالا تو فرمت یه گرید ویو بذار و دوتا تکست باکس و دو تا باتون به نام Add و show .

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Data.SqlClient;


namespace hey
{
public partial class Form1 : Form
{

private DataTable dt;
private SqlDataAdapter adapter;
private SqlConnection connection;
public Form1()
{
connection = new SqlConnection("Server=.;DataBase=sara;Integrated Security=SSPI");
InitializeComponent();
}

RIG000
دوشنبه 14 تیر 1389, 23:21 عصر
اول این با رو ش کلیک کنی تا گرید ویو رو ببینی . اطلاعتش منظورمه . اولین بار که اینو اجرا میکنی . هیچ داده ای نداری تو گرید .
private void btnShow_Click(object sender, EventArgs e)
{
dt = new DataTable();
adapter = new SqlDataAdapter("SELECT * FROM myTable", connection);
try
{
connection.Open();
adapter.Fill(dt);
dataGridView1.DataSource = dt;
}
catch (Exception error)
{

MessageBox.Show(error.Message);
}
finally
{
connection.Close();
}
}

RIG000
دوشنبه 14 تیر 1389, 23:23 عصر
اینم ADD کردن تو گرید ویو

private void ADD_Click(object sender, EventArgs e)
{
adapter = new SqlDataAdapter("SELECT * FROM myTable", connection);
SqlCommandBuilder cb = new SqlCommandBuilder(adapter);
SqlCommand cmdAdd = cb.GetInsertCommand();

cmdAdd.Parameters[0].Value = textBox1.Text;
cmdAdd.Parameters[1].Value = textBox1.Text;

try
{
connection.Open();
cmdAdd.ExecuteNonQuery();

}
catch (Exception error)
{
MessageBox.Show(error.Message);

}
finally
{
connection.Close();
btnShow_Click(null, null);
}