PDA

View Full Version : مشکل با executescalar



silverfox
شنبه 07 دی 1387, 14:42 عصر
سلام خسته نباشید!می خواستم ببینم اشکال کارم کجاس که با یدونه executescalar کار می کنه با دومیش این ارور رو میده


Object reference not set to an instance of an object.

این کدمه:


public int isoozan
{
get
{
SqlConnection cnszn = new SqlConnection(System.Web.Configuration.WebConfigur ationManager.ConnectionStrings["DBConnectionString1"].ConnectionString);
cnszn.Open();
SqlCommand cmdCountSoozan = new SqlCommand("SELECT Vote FROM Vote where Printer = N'چاپگر سوزنی'", cnszn);
int isoozan = (int)cmdCountSoozan.ExecuteScalar();
cnszn.Close();
return isoozan;
}
}
public int ilaser
{
get
{
SqlConnection cnlsr = new SqlConnection(System.Web.Configuration.WebConfigur ationManager.ConnectionStrings["DBConnectionString1"].ConnectionString);
cnlsr.Open();
SqlCommand cmdCountLaser = new SqlCommand("SELECT Vote FROM Vote where Printer = N'چاپگر لیزری'", cnlsr);
int ilaser = (int)cmdCountLaser.ExecuteScalar();
cnlsr.Close();
return ilaser;
}
}
و
string slaser = ilaser.ToString();
string ssoozan = isoozan.ToString();

dark-man
شنبه 07 دی 1387, 15:22 عصر
سلام خسته نباشید!می خواستم ببینم اشکال کارم کجاس که با یدونه executescalar کار می کنه با دومیش این ارور رو میده


Object reference not set to an instance of an object.

این کدمه:


public int isoozan
{
get
{
SqlConnection cnszn = new SqlConnection(System.Web.Configuration.WebConfigur ationManager.ConnectionStrings["DBConnectionString1"].ConnectionString);
cnszn.Open();
SqlCommand cmdCountSoozan = new SqlCommand("SELECT Vote FROM Vote where Printer = N'چاپگر سوزنی'", cnszn);
int isoozan = (int)cmdCountSoozan.ExecuteScalar();
cnszn.Close();
return isoozan;
}
}
public int ilaser
{
get
{
SqlConnection cnlsr = new SqlConnection(System.Web.Configuration.WebConfigur ationManager.ConnectionStrings["DBConnectionString1"].ConnectionString);
cnlsr.Open();
SqlCommand cmdCountLaser = new SqlCommand("SELECT Vote FROM Vote where Printer = N'چاپگر لیزری'", cnlsr);
int ilaser = (int)cmdCountLaser.ExecuteScalar();
cnlsr.Close();
return ilaser;
}
}
و
string slaser = ilaser.ToString();
string ssoozan = isoozan.ToString();



سلام اول یک متغیر از نوع object بساز مثلا"



object xvar = cmd.ExecuteScalar();

بعد هم متغیر ساخته شده رو تبدیل به int کن مثلا"




int xvar = convert.toint32(xvar);

xvar ی که توی پارنتز نوشتم همون object ی هست که بالا ساختی .
امیدوارم کمکت کنه .:لبخندساده:

silverfox
شنبه 07 دی 1387, 18:46 عصر
اگه بخوام با Executereader کل دیتاهارو بخونم بد دونه دونه بریزم توی string هایی که می خوام چطوری می تونم این کار رو بکنم؟

dark-man
شنبه 07 دی 1387, 19:16 عصر
من منظورت رو درست نفهمیدم اما می تونم پیشنهاد کنم از یک دیتاگریدویو استفاده کنی رکوردهای یک جدول رو بخونی و اونا رو بریزی تو هر رشته ای که می خوای . شاید این روش کمکت کنه

لا لايي
شنبه 07 دی 1387, 23:50 عصر
يك مثال


private DataTable creat_DataTable1(string codp)
{
DataTable dt = new DataTable();
if (string.IsNullOrEmpty(codp))
{
return (dt);
}
SqlCommand cmm = new SqlCommand("SELECT * FROM table WHERE (Personal_ID = N'" + codp + "')", new SqlConnection(@"Data Source=localhost;Initial Catalog=your database name;Integrated Security=True"));
if (cmm.Connection.State == ConnectionState.Closed)
{
cmm.Connection.Open();
}
SqlDataReader dr1 = cmm.ExecuteReader();
try
{
int j = 0;
for (int i = 0; i < dr1.FieldCount; i++)
{
dt.Columns.Add(dr1.GetName(i));
}
while (dr1.Read())
{
dt.Rows.Add(dt.NewRow());
for (int i = 0; i < dr1.FieldCount; i++)
{
dt.Rows[j][i] = dr1.GetValue(i);
}
j++;
}
}
catch (Exception ex)
{
MessageBox.Show(" خطا " + ex.Message);
}

cmm.Connection.Close();
dr1.Dispose();
return (dt);
}

silverfox
یک شنبه 08 دی 1387, 09:27 صبح
مرسی بابت راهنماییتون
مشکلم حل شد


DataTable dt = new DataTable();
SqlConnection con = new SqlConnection(System.Web.Configuration.WebConfigur ationManager.ConnectionStrings["DBConnectionString"].ConnectionString);
con.Open();
SqlCommand cm = new SqlCommand("SELECT a FROM a", con);
SqlDataReader dr = cm.ExecuteReader();
int j = 0;
for (int i = 0; i < dr.FieldCount; i++)
{
dt.Columns.Add(dr.GetName(i));
}
while (dr.Read())
{
dt.Rows.Add(dt.NewRow());
for (int i = 0; i < dr.FieldCount; i++)
{
dt.Rows[j][i] = dr.GetValue(i);
}
j++;
}
dr.Dispose();
con.Close();
ArrayList al = new ArrayList();
foreach (DataRow dtRow in dt.Rows)
{
al.Add(dtRow[0].ToString());
}