PDA

View Full Version : سوال: نحوه اجرای این دستورات sql در vb.net



ehsanvb
سه شنبه 19 خرداد 1394, 11:48 صبح
سلام

من میخواستم دستورات زیر را که برای فارسی سازی کاراکترهای عربی در یک بانک در sql است رو مستقیما در vb.net اجرا کنم

ممنون میشم اگه راهنماییم کنید:


USE HBank;
DECLARE @Table NVARCHAR(500),
@Col NVARCHAR(500),
@S nvarchar(500)
DECLARE Table_Cursor CURSOR
FOR
--پيدا كردن تمام فيلدهاي متني تمام جداول ديتابيس جاري
SELECT a.name, --table
b.name --col
FROM sysobjects a,
syscolumns b
WHERE a.id = b.id
AND (
b.xtype = 99 --ntext
OR b.xtype = 35 -- text
OR b.xtype = 231 --nvarchar
OR b.xtype = 167 --varchar
OR b.xtype = 175 --char
OR b.xtype = 239 --nchar
)
and a.xtype='U' and substring(a.name,1,9) <> 'conflict_' and a.name
<>'dtproperties'
OPEN Table_Cursor FETCH NEXT FROM Table_Cursor INTO @Table,@Col
WHILE (@@FETCH_STATUS = 0)
BEGIN
set @S='update [' + @Table + '] set [' + @Col +
']= REPLACE(REPLACE(CAST([' + @Col +
'] as nvarchar(1000)) , NCHAR(1610),
NCHAR(1740)),NCHAR(1603),NCHAR(1705)) '
--print @S
EXEC ( @S )
FETCH NEXT FROM Table_Cursor INTO @Table,@Col
END
CLOSE Table_Cursor DEALLOCATE Table_Cursor

shadi khanum
سه شنبه 19 خرداد 1394, 13:04 عصر
منظورتون از اینکه مستقیما در vb.net اجرا کنم چیه؟ اگر یعنی همین دستورات از طریق برنامتون اجرا بشه که میتونی اینو یه StoreProc کنی و از توی برنامه صداش بزنی
اگه اصلا نمیخای از این کدا استفاده کنی و میخوای از دستورات vb استفاده کنی باید اطلاعات رو اول بخونی تو یه جدولی بریزی بعد با Replace همه کاراکترای ی و ک عربی رو با فارسیش جایگزین کنی

ehsanvb
سه شنبه 19 خرداد 1394, 13:11 عصر
منظورتون از اینکه مستقیما در vb.net اجرا کنم چیه؟ اگر یعنی همین دستورات از طریق برنامتون اجرا بشه که میتونی اینو یه StoreProc کنی و از توی برنامه صداش بزنی
اگه اصلا نمیخای از این کدا استفاده کنی و میخوای از دستورات vb استفاده کنی باید اطلاعات رو اول بخونی تو یه جدولی بریزی بعد با Replace همه کاراکترای ی و ک عربی رو با فارسیش جایگزین کنی

ببین دوست عزیز من هدفم اینه که با زدن یک دکمه در برنامه ، تمام کاراکترهای یک بانک خاص رو به فارسی تبدیل کنه

کدهایی که در بالا گذاشتم رو اگر در بصورت یک کوئری در اس کیو ال منیجر اجرا کنم این کار رو برام انجام میده ولی من میخوام کاربر بتونه از داخل برنامه ای که با زبان وی بی نوشته شده این کار را با زدن یک دکمه انجام بده و نیازی نباشه وارد اس کیو ال منیجر بشه

روش
Replace که شما فرمودید هم جواب میده ولی یکم زمان بر هست

امیدوارم که تونسته باشم منظورم رو برسونم

ehsanvb
سه شنبه 19 خرداد 1394, 15:01 عصر
جواب رو یافتم .... :متفکر:

مینویسم اینجا باشد که درس عبرتی باشد برای آیندگان .... :چشمک:






Dim cnn2 As New SqlConnection()
Dim cmd2 As New SqlCommand()
Dim sda2 As New SqlDataAdapter()
cmd2.CommandText = "عبارتی اس کیو الی را که میخواهیم اجرا شود پشت سر هم در این محل مینویسیم; "
cnn2.ConnectionString = "Server=.;Database=BankName;uid=user;pwd=123;"
cmd2.Connection = cnn2
cnn2.Open()
cmd2.ExecuteNonQuery()
cnn2.Close()

hamidrezax1
شنبه 08 خرداد 1395, 00:36 صبح
سلام دوست عزیز من همزمان دو تا کوئری دارم که میخوام وقتی اولی اجرا شد یهپیغام بده و بهد دومی رو بلافاصله اجرا کنه اما ارور میده آیا راه حلی سراغ دارین؟


Dim cnn2 As New SqlConnection()
Dim cmd2 As New SqlCommand()
Dim sda2 As New SqlDataAdapter()
cmd2.CommandText = "عبارتی اس کیو الی را که میخواهیم اجرا شود پشت سر هم در این محل مینویسیم; "
cnn2.ConnectionString = "Server=.;Database=BankName;uid=user;pwd=123;"
cmd2.Connection = cnn2
cnn2.Open()
cmd2.ExecuteNonQuery()
cnn2.Close()
Dim cnn2 As New SqlConnection()
Dim cmd2 As New SqlCommand()
Dim sda2 As New SqlDataAdapter()
cmd2.CommandText = "عبارتی اس کیو الی را که میخواهیم اجرا شود پشت سر هم در این محل مینویسیم; "
cnn2.ConnectionString = "Server=.;Database=BankName;uid=user;pwd=123;"
cmd2.Connection = cnn2
cnn2.Open()
cmd2.ExecuteNonQuery()
cnn2.Close()