PDA

View Full Version : اشکال در کد بیشترین مقدار فیلد



Collector
دوشنبه 12 اردیبهشت 1390, 17:10 عصر
سلام

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

string s1;
s1 = "select max(Radif) from Sabt";
SqlCommand cmd1 = new SqlCommand(s1, con);
con.Open();
cmd1.ExecuteNonQuery();
con.Close();
da.SelectCommand.CommandText = "select * from Sabt";
da.Fill(ds9, "t1");
textBox1.DataBindings.Add("Text", ds9, "t1.Radif");

ali.rezaei7
دوشنبه 12 اردیبهشت 1390, 18:21 عصر
سلام.
ExecuteNonQuery رو زمانی به کار می بریم که بخواهیم یک پرس و جوی اکشن رو روی دیتا بیس اجرا کنیم مثل UPDATE,INSERT,... . در کد شما قراره که یک SELECT COMMAND اجرا بشه، باید از توابعی مثل ExrcuteReader یا ExecuteScalar استفاده کنیم.
خط 5 رو به این صورت اصلاح کنید:
int max=(int)cmd1.ExecuteScaler()

ExecuteScaler بعد از اجرای پرس و جو، مقدار اولین ستون از اولین سطر رو بر میگرداند.
موفق باشید.

rahmana
دوشنبه 12 اردیبهشت 1390, 18:38 عصر
سلام دوست من
اشتباه نوشتي اگر منظورت اينه كه مقدار ماكزيمم را بدست بياوريم
اين را بنويس خودم برات نوشتم 100% كار مي كنه شما new databinding را ننوشتي و بعد كاماند dataadapter تعريف شده ربط به كد ماكزيمم نوشته شده ندارد بخاطر همين است جواب نمي دهد
SqlConnection cn = new SqlConnection("Data Source=.;Initial Catalog=anbar;Integrated Security=True");
SqlDataAdapter da = new SqlDataAdapter("select max(radif) as max1 from sabt", cn);
DataSet ds=new DataSet();
cn.Open();
da.Fill(ds, "sabt");
textBox1.DataBindings.Add(new Binding("text", ds, "sabt.max1"));

اردتمند شما رحمان احمدي

rahmana
دوشنبه 12 اردیبهشت 1390, 18:44 عصر
سلام دوست من
شما در اين كد برنامه كه نوشتي كد مربوط به ماكزيممت ربطي به dataadapter تعريف شده نداره و مقدار ديگري در آن اجرا مي شود
اين كد را بنويس كاملا جواب مي دهد. اگر مشكلي بود بازهم پيام بگذار

SqlConnection cn = new SqlConnection("Data Source=.;Initial Catalog=anbar;Integrated Security=True");
SqlDataAdapter da = new SqlDataAdapter("select max(radif) as max1 from sabt", cn);
DataSet ds=new DataSet();
cn.Open();
da.Fill(ds, "sabt");
textBox1.DataBindings.Add(new Binding("text", ds, "sabt.max1"));

ارادتمند شما رحمان احمدي

Collector
دوشنبه 12 اردیبهشت 1390, 20:25 عصر
تشکر از پاسختان

من کد آقای rahmana را اجرا کردم ولی ارور

Argument '1': cannot convert from 'string' to 'System.Windows.Forms.Binding'

و کد آقای ali.rezaei7

This causes two bindings in the collection to bind to the same property.
Parameter name: binding

ali.rezaei7
دوشنبه 12 اردیبهشت 1390, 20:36 عصر
تشکر از پاسختان
]
و کد آقای ali.rezaei7

This causes two bindings in the collection to bind to the same property.
Parameter name: binding

این خطا در خط 9 رخ میده؟

aliasghar2
دوشنبه 12 اردیبهشت 1390, 21:32 عصر
سلام دوست عزیز

فکر کنم اینجوری بهتره
SqlConnection cn = newSqlConnection("Data Source=.;Initial Catalog=anbar;Integrated Security=True");
SqlDataCommand com = newSqlDataCommand("select max(radif) as max1 from sabt", cn);
tectbox1.text=convert.tostring(com.executereader() );

Collector
دوشنبه 12 اردیبهشت 1390, 22:26 عصر
این خطا در خط 9 رخ میده؟

بله این خطا در خط 9 رخ میده !!! اگر امکان داره یک پروژه ارایه دهید!



سلام دوست عزیز

فکر کنم اینجوری بهتره
SqlConnection cn = newSqlConnection("Data Source=.;Initial Catalog=anbar;Integrated Security=True");
SqlDataCommand com = newSqlDataCommand("select max(radif) as max1 from sabt", cn);
tectbox1.text=convert.tostring(com.executereader() );



این ارور رو میده

ExecuteReader requires an open and available Connection. The connection's current state is closed.

ali.rezaei7
دوشنبه 12 اردیبهشت 1390, 22:45 عصر
بله این خطا در خط 9 رخ میده !!! اگر امکان داره یک پروژه ارایه دهید!

قبل از کد 9 دستور زیر رو جایگذاری کنید:
textBox1.DataBindings.Clear();

خصیصه قبلا بایند شده. و دوباره بایند کردن آن باعث بروز خطا می شود.

Collector
سه شنبه 13 اردیبهشت 1390, 00:29 صبح
و در نهایت با این کد هم جواب نداد . کسی نظری نداره

string s1;
textBox1.DataBindings.Clear();
s1 = "select max(Radif) from Sabt";
SqlCommand cmd1 = new SqlCommand(s1, con);
con.Open();
cmd1.ExecuteReader();
con.Close();
da.SelectCommand.CommandText = "select * from Sabt";
da.Fill(ds9, "t1");
textBox1.DataBindings.Add("Text", ds9, "t1");

ali.rezaei7
سه شنبه 13 اردیبهشت 1390, 09:26 صبح
در این پروژه، بیشترین مقدار فیلد ID از دیتا بیس بیرون کشیده میشه.
از دیتابیس ACCESS استفاده کردم.

در ضمن اون خطایی هم که داره رخ میده، به بدست آوردن بیشترین مقدار مربوط نمی شه. بلکه مشکل در بایند کردن کنترل با منبع موردنظرتون هست.