ورود

View Full Version : ایجاد جدول در حین اجرا برنامه



star_game
یک شنبه 05 شهریور 1391, 11:52 صبح
با سلام خدمت دوستان
من یک برنامه می نویسم که در آن حقوق کارمندان محاسبه شود. می خواهم در پایان هر ماه که محاسبه حقوق انجام می شود جدول مر بوط به آن ایجاد شود یعنی از ابتدا جداول تمام ماه ها را ایجاد نکنم.
کد مربوط به آن چیست و باید درsql نوشته شود یا خود برنامم (سی شارپ)
منتظر کمک های شما هستم

baktash.n81@gmail.com
یک شنبه 05 شهریور 1391, 13:08 عصر
در مورد اینکه آیا روش شما درست است یا خیر بحثی نمی کنم چون ممکن است زیاد مناسب نباشد.

برای ایجاد جداول شما می توانید از از Create Table استفاده کنید. شما می توانید یک جدول در محیط ویژوال ایجاد کنید بعد Script مربوط به ساخت آن را بردارید و استفاده کنید. اما اسم جدول شما هر ماه باید تغییر کند برای اینکار شما می توانید از Daynamic TSQL استفاده کنید. برای اطلاعات بیشتر در مورد دستور Exec جستجو بفرمایید ...

شما رشته ای که حاوی کد مربوط به ایجاد جدول است را به همراه نام جدول ایجاد می کنید و سپس با کمک دستور Exec آنرا اجرا می کنید.


Declare @TableName nvarchar(50)
Declare @S nvarchar(1000)
Set @TableName = 'TestScript'
Set @S=
'CREATE TABLE [dbo].'+@TableName+
'(
[id] [int] IDENTITY(1,1) NOT NULL,
[fieldname] [nvarchar](50) COLLATE Arabic_CI_AS NULL,
[fieldvalue] [nvarchar](50) COLLATE Arabic_CI_AS NULL,
[idpk] [int] NOT NULL,
[ca] AS ((2)*[id]),
CONSTRAINT [PK_'+@TableName+'T1_1] PRIMARY KEY CLUSTERED
(
[id] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
'
Exec (@s)


TableName نام جدول جدید است.

star_game
یک شنبه 05 شهریور 1391, 14:18 عصر
من چون دفعه اولی که همچین برنامه ای می نویسم خوشحال می شوم اگه اطلاعاتی دارید کمکم کنید. من می خوام هر ماه یک جدول برای کارمندان ایجاد شه که از اول مجبور نشم 12 تا جدول درست کنم تازه واسه سال بعد چی؟؟ هر ماه وقتی حقوق محاسبه می شه برنامه نگاه کنه ببینه اگه جدولش ایجاد نشده ایجاد کنه(البته جستجو اش را هم بلد نیستم).
حالا اگه شما فکر می کنید درست نیست راهنمایی کنید. مرسی

baktash.n81@gmail.com
یک شنبه 05 شهریور 1391, 15:17 عصر
به نظر من نیازی نیست که برای هر ماه یک جدول ایجاد کنید فقط کافیه یه فیلد برای ماه و یه فیلد برای سال درون جدول محاسباتتون اضافه کنید که مشخص کنه این محاسبات مربوط به کدوم ماه و سال می باشد.