msozan
شنبه 01 اسفند 1388, 09:24 صبح
یکی از ستون های جدولم رو میخوام اگه کاراکتر مثلا اینتر داخلش هست رو پاکش کنم برای همین اومدم اون ستونو توی یه دیتا تیبل ریختم و داخل حلقه foreach سطر به سطر چک می کنم که اگه این کاراکتر داخل این ستون هست با دستور replace اونو با کاراکتر دلخواهم پر میکنم و داخل همین حلقه با دستور update ستون اصلاحی رو جایگزین همون ستون می کنم حالا یه مشکل دارم:
حلقه foreach فقط برای اولین سطر اجرا میشه و برای سطر بعدی خطا می ده
خطای اون هم در مورد اینه که من فیلد اضافی به پروسیجر update میفرستم در صورتی که این طور نیست
چرا دفعه اول فقط اجرا میشه؟
کد:تابع showtozihat ستون توضیحات رو داخل یه دیتا تیبل میریزه:
DataTable dts = new DataTable();
int kind = 0;
dts = showtozihat(kind);
////////////////////
SqlCommand scmd = new SqlCommand();
scmd.Connection = sqlconnect;
scmd.CommandType = CommandType.StoredProcedure;
scmd.CommandText = "Dam_update_fildha";
///////////////////
foreach (DataRow drs in dts.Rows)
{
string id = "";
string date = "";
string tozihat = "";
string tosieh = "";
string tozihat_new = "";
string tosieh_new = "";
id = drs["pnumber"].ToString();
date = drs["tarikhbazdid"].ToString();
tosieh = drs["tosieh"].ToString();
tozihat = drs["tozihat"].ToString();
/////////////////////
//scmd.Parameters.AddWithValue("@type", 0);
if (tosieh.Contains('\n'))
{
tosieh_new = tosieh.Replace('\n', '-').ToString() ;
if (tosieh_new.Contains('\r'))
tosieh_new = tosieh_new.Replace('\r', '-').ToString();
}
if (tozihat.Contains('\n'))
{
tozihat_new = tozihat.Replace('\n', '-').ToString();
if (tozihat_new.Contains('\r'))
tozihat_new = tozihat_new.Replace('\r', '-').ToString();
}
if (tosieh_new == "" && tozihat_new == "")
continue;
scmd.Parameters.AddWithValue("@id", id);
scmd.Parameters.AddWithValue("@tarikh", date);
scmd.Parameters.AddWithValue("@tosieh", tosieh_new);
scmd.Parameters.AddWithValue("@tozihat", tozihat_new);
sqlconnect.Open();
scmd.ExecuteNonQuery();
sqlconnect.Close();
حلقه foreach فقط برای اولین سطر اجرا میشه و برای سطر بعدی خطا می ده
خطای اون هم در مورد اینه که من فیلد اضافی به پروسیجر update میفرستم در صورتی که این طور نیست
چرا دفعه اول فقط اجرا میشه؟
کد:تابع showtozihat ستون توضیحات رو داخل یه دیتا تیبل میریزه:
DataTable dts = new DataTable();
int kind = 0;
dts = showtozihat(kind);
////////////////////
SqlCommand scmd = new SqlCommand();
scmd.Connection = sqlconnect;
scmd.CommandType = CommandType.StoredProcedure;
scmd.CommandText = "Dam_update_fildha";
///////////////////
foreach (DataRow drs in dts.Rows)
{
string id = "";
string date = "";
string tozihat = "";
string tosieh = "";
string tozihat_new = "";
string tosieh_new = "";
id = drs["pnumber"].ToString();
date = drs["tarikhbazdid"].ToString();
tosieh = drs["tosieh"].ToString();
tozihat = drs["tozihat"].ToString();
/////////////////////
//scmd.Parameters.AddWithValue("@type", 0);
if (tosieh.Contains('\n'))
{
tosieh_new = tosieh.Replace('\n', '-').ToString() ;
if (tosieh_new.Contains('\r'))
tosieh_new = tosieh_new.Replace('\r', '-').ToString();
}
if (tozihat.Contains('\n'))
{
tozihat_new = tozihat.Replace('\n', '-').ToString();
if (tozihat_new.Contains('\r'))
tozihat_new = tozihat_new.Replace('\r', '-').ToString();
}
if (tosieh_new == "" && tozihat_new == "")
continue;
scmd.Parameters.AddWithValue("@id", id);
scmd.Parameters.AddWithValue("@tarikh", date);
scmd.Parameters.AddWithValue("@tosieh", tosieh_new);
scmd.Parameters.AddWithValue("@tozihat", tozihat_new);
sqlconnect.Open();
scmd.ExecuteNonQuery();
sqlconnect.Close();