PDA

View Full Version : Split یک متن که جداکننده یک رشته باشد



Jean Reno
چهارشنبه 23 تیر 1389, 08:19 صبح
با سلام قبل از هر چیز لازمه بگم که جستجو کردم اما تمام موارد Split که یافتم بر اساس یک یا چند کاراکتر بود من یک Query Builder ساختم که یک دستور SQL رو سمت بانک اجرا می کنه می خوام برنامه ام رو گسترش بدم و چند دستور رو باهم قرار بدم اما بین مجموعه اسکریپت ها بایستی یک خط خالی کلمه کلیدی GO و مجدد یک خط خالی باشد یعنی \n GO \n چطور این رو پیاده کنم ؟ لطفا با کد مثال با تشکر

beh_develop
چهارشنبه 23 تیر 1389, 09:02 صبح
با سلام قبل از هر چیز لازمه بگم که جستجو کردم اما تمام موارد Split که یافتم بر اساس یک یا چند کاراکتر بود من یک Query Builder ساختم که یک دستور SQL رو سمت بانک اجرا می کنه می خوام برنامه ام رو گسترش بدم و چند دستور رو باهم قرار بدم اما بین مجموعه اسکریپت ها بایستی یک خط خالی کلمه کلیدی GO و مجدد یک خط خالی باشد یعنی \n GO \n چطور این رو پیاده کنم ؟ لطفا با کد مثال با تشکر


یه کلاس بنویس و یک ArrayList تعریف کن، و تابعی به اسم Add یا هرچیزی که دوست داری به کلاس اضافه کن که به آرایه رشته رو درج کنه

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



private ArrayList queries = new ArrayList();

public void AddQuery(String query)
{
queries.Add(query);
}

public void Execute()
{
sqlConn.Open();

SqlTransaction sqlTran = sqlConn.BeginTransaction();
SqlCommand command = sqlConn.CreateCommand();
command.Transaction = sqlTran;

try
{
foreach (String query in queries)
{
command.CommandText = query;
command.ExecuteNonQuery();
}

sqlTran.Commit();
queries.Clear();
}
catch
{
sqlTran.Rollback();
throw;
}
finally
{
if(command!=null)
{ command.Dispose();
command=null;
}

if (sqlTran != null)
{
sqlTran.Dispose();
sqlTran = null;
}

if (sqlConn.State == System.Data.ConnectionState.Open)
sqlConn.Close();
}

}