mohsenns5
چهارشنبه 08 اردیبهشت 1389, 15:04 عصر
یه استور پروسیجر تو sql دارم که حدود 2 دقیقه طول میکشه اجرا بشه و خروجی بده
حال من از تو برنامم اونو اجرا میکنم اما پیغام خطایی که ضمیمه کردم رو نشون میده
واسه رفع این مشکل از رشته اتصالم رو اینطوری تغییر دادم:
readonly string ConStr = @"Data Source=.\" + mySetting.ConnectionString + @";Initial Catalog=lendCashDB;Integrated Security=True;Connect Timeout=3000000";
اما هنوز خطا میده
لطفا راهنمایی کنید چطور این مشکل حل میشه؟
----------------------------------------------------------------------------
اینجا تابعم رو صدا میزنم:
myMoein.bedBesForAllMoein(تاریخ امروز);
اینجا تابعbedBesForAllMoein را تعریف کرده ام:
internal void bedBesForAllMoein(string SecondDate)
{
SqlCommand cmd = new SqlCommand();
cmd.CommandType = CommandType.StoredProcedure;
cmd.CommandText = "bedBesForAllMoein";
cmd.Parameters.AddWithValue("@SecondDate", SecondDate);
cmd.Parameters.AddWithValue("@financialYear", config.financialYear);
dbRun myDbRun = new dbRun();
myDbRun.execSelectCommand(cmd);
dvMoein = new DataView();
dvMoein = myDbRun.DvRun;
}
این هم کلاس dbRun:
using System.Configuration;
using System.Data;
using System.Data.SqlClient;
using System.Windows.Forms;
namespace lendCashAccountingOfwehdet.Classes
{
class dbRun
{
static readonly ConnectionStringSettings mySetting = ConfigurationManager.ConnectionStrings["lendCashDBString"];
readonly string ConStr = @"Data Source=.\" + mySetting.ConnectionString + @";Initial Catalog=lendCashDB;Integrated Security=True;Connect Timeout=3000000";
SqlConnection myCn;
private bool b=true;
public DataView DvRun;
public dbRun()
{
myCn = new SqlConnection(ConStr);
}
public bool B
{
get { return b; }
set { b = value; }
}
public void ExecCommand(SqlCommand mycmd)
{
try
{
mycmd.Connection = myCn;
if (myCn.State == ConnectionState.Closed)
myCn.Open();
try
{
mycmd.ExecuteNonQuery();
}
catch (SqlException sqle)
{
b = false;
if (sqle.Number == 2627)
MessageBox.Show("ç éں £ ¢ گ©§ی§ى ں«¢", "¦لں", MessageBoxButtons.OK, MessageBoxIcon.Error);
else if (sqle.Number == 3201)
MessageBox.Show("ê«ی© §ں§ى ¬§ى êم¢ © ëêی ں¬§", "¦لں", MessageBoxButtons.OK, MessageBoxIcon.Error);
else
MessageBox.Show("¦لں §© ںëک ںلéںمں¢ی1: " + sqle.Message, "¦لں", MessageBoxButtons.OK,
MessageBoxIcon.Error);
}
myCn.Close();
myCn.Dispose();
}
catch (SqlException se)
{
b = false;
MessageBox.Show("¦لں §© ںëک ںلéںمں¢ی2: " + se.Message, "¦لں", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
public void execSelectCommand(SqlCommand mycmd)
{
try
{
mycmd.Connection = myCn;
if (myCn.State == ConnectionState.Closed)
myCn.Open();
SqlDataAdapter da = new SqlDataAdapter();
da.SelectCommand = mycmd;
DataTable dt = new DataTable();
mycmd.ExecuteNonQuery();
da.Fill(dt);
DvRun = new DataView();
DvRun = dt.DefaultView;
myCn.Close();
myCn.Dispose();
}
catch (SqlException es)
{
b = false;
MessageBox.Show("¦لں §© ںëک ںلéںمں¢ی3: " + es.Message, "¦لں", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
}
}
حال من از تو برنامم اونو اجرا میکنم اما پیغام خطایی که ضمیمه کردم رو نشون میده
واسه رفع این مشکل از رشته اتصالم رو اینطوری تغییر دادم:
readonly string ConStr = @"Data Source=.\" + mySetting.ConnectionString + @";Initial Catalog=lendCashDB;Integrated Security=True;Connect Timeout=3000000";
اما هنوز خطا میده
لطفا راهنمایی کنید چطور این مشکل حل میشه؟
----------------------------------------------------------------------------
اینجا تابعم رو صدا میزنم:
myMoein.bedBesForAllMoein(تاریخ امروز);
اینجا تابعbedBesForAllMoein را تعریف کرده ام:
internal void bedBesForAllMoein(string SecondDate)
{
SqlCommand cmd = new SqlCommand();
cmd.CommandType = CommandType.StoredProcedure;
cmd.CommandText = "bedBesForAllMoein";
cmd.Parameters.AddWithValue("@SecondDate", SecondDate);
cmd.Parameters.AddWithValue("@financialYear", config.financialYear);
dbRun myDbRun = new dbRun();
myDbRun.execSelectCommand(cmd);
dvMoein = new DataView();
dvMoein = myDbRun.DvRun;
}
این هم کلاس dbRun:
using System.Configuration;
using System.Data;
using System.Data.SqlClient;
using System.Windows.Forms;
namespace lendCashAccountingOfwehdet.Classes
{
class dbRun
{
static readonly ConnectionStringSettings mySetting = ConfigurationManager.ConnectionStrings["lendCashDBString"];
readonly string ConStr = @"Data Source=.\" + mySetting.ConnectionString + @";Initial Catalog=lendCashDB;Integrated Security=True;Connect Timeout=3000000";
SqlConnection myCn;
private bool b=true;
public DataView DvRun;
public dbRun()
{
myCn = new SqlConnection(ConStr);
}
public bool B
{
get { return b; }
set { b = value; }
}
public void ExecCommand(SqlCommand mycmd)
{
try
{
mycmd.Connection = myCn;
if (myCn.State == ConnectionState.Closed)
myCn.Open();
try
{
mycmd.ExecuteNonQuery();
}
catch (SqlException sqle)
{
b = false;
if (sqle.Number == 2627)
MessageBox.Show("ç éں £ ¢ گ©§ی§ى ں«¢", "¦لں", MessageBoxButtons.OK, MessageBoxIcon.Error);
else if (sqle.Number == 3201)
MessageBox.Show("ê«ی© §ں§ى ¬§ى êم¢ © ëêی ں¬§", "¦لں", MessageBoxButtons.OK, MessageBoxIcon.Error);
else
MessageBox.Show("¦لں §© ںëک ںلéںمں¢ی1: " + sqle.Message, "¦لں", MessageBoxButtons.OK,
MessageBoxIcon.Error);
}
myCn.Close();
myCn.Dispose();
}
catch (SqlException se)
{
b = false;
MessageBox.Show("¦لں §© ںëک ںلéںمں¢ی2: " + se.Message, "¦لں", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
public void execSelectCommand(SqlCommand mycmd)
{
try
{
mycmd.Connection = myCn;
if (myCn.State == ConnectionState.Closed)
myCn.Open();
SqlDataAdapter da = new SqlDataAdapter();
da.SelectCommand = mycmd;
DataTable dt = new DataTable();
mycmd.ExecuteNonQuery();
da.Fill(dt);
DvRun = new DataView();
DvRun = dt.DefaultView;
myCn.Close();
myCn.Dispose();
}
catch (SqlException es)
{
b = false;
MessageBox.Show("¦لں §© ںëک ںلéںمں¢ی3: " + es.Message, "¦لں", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
}
}