مشکل نوشتن کد ایجاد تعداد زیادی جدول در ASP.NET
سلام من ازکد زیر برای ساخت جدول در asp.net استفاده میکنم الان فقط یه جدول هست اگه بخوام تعداد زیادی جدول درست کنم کد نویسی زیاد و اصلا منظقی نیست که از کدهای زیر استفاده کنم راه و پیشنهاد شما جیه؟
[CSHARP]
SqlConnection connect = new SqlConnection(Connection);
string accesspage = " CREATE TABLE [dbo].[accesspage]([IDaccesspage] [int] IDENTITY(1,1) NOT NULL,[namepages] [nvarchar](50) NULL,[username] [nvarchar](50) NULL,CONSTRAINT [PKaccesspagepage] PRIMARY KEY CLUSTERED ([IDaccesspage] ASC)WITH (PADINDEX = OFF, STATISTICSNORECOMPUTE = OFF, IGNOREDUPKEY = OFF, ALLOWROWLOCKS = ON, ALLOWPAGELOCKS = ON) ON [PRIMARY]) ON [PRIMARY] ";
SqlCommand command = new SqlCommand(access_page , connect);
connect.Open();
command.ExecuteNonQuery();
connect.Close();
[/CSHARP]
16 پاسخ
داخل مسیر table و script رو سر هم نوشتید:
var path = HttpContext.Current.Server.MapPath("~/Table/script/cms.txt");
زمانی که سایتم روی هاست هست چه جور باید script را اجرا کنم میخوام یه صفحه داخل Asp.net باشه و یه دکمه هم داشته باشه وقتی روی دکمه کلیک کردم به صورت خودکار جدول ها درون دیتابیس مورد نظر ساخته بشن
ببخشید این خطای جیه؟
سلام مجدد، شما بوسیله SSMO یا SQL Server Management Objects می تونید به راحتی این کار رو انجام بدید، نمونه کد زیر اینکار رو برای شما انجام میده:
string sqlConnectionString = @"Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=ccwebgrity;Data Source=SURAJIT\SQLEXPRESS"; string script = File.ReadAllText(@"E:\Project Docs\MX462-PD\MX756_ModMappings1.sql"); SqlConnection conn = new SqlConnection(sqlConnectionString); Server server = new Server(new ServerConnection(conn)); server.ConnectionContext.ExecuteNonQuery(script);
این خط رو به صورت زیر اصلاح کنید:
var path = HttpContext.Current.Server.MapPath("~/Tablescript/cms.txt");
دوست عزیز، به پیغام خطا دقت کنید، فایلی که قراره بازه بشه تو مسیر ذکر شده وجود نداره، شما چک کنید ببینید فایلی با نام cms.txt داخل مسیر ذکر شده هست یا نه!
کد شما استفاده میکنم با اخطار زیر مواجه میشم
اینم کدی که استفاده میکنم
SqlConnection connect = new SqlConnection(Connection);
string script = File.ReadAllText("~Tablescript/cms.txt");
SqlCommand command = new SqlCommand(script, connect);
connect.Open();
command.ExecuteNonQuery();
connect.Close();
مرسی
فقط یه سوال دیگه
چگونه میتونم ادرس فایل رو از سیستم بهش بدم
سلام دوست عزیز، شما دو راهکار دارید:
یکی اینکه فایل script ساخت database رو در کنار برنامه داشته باشید و زمان ایجاد بانک script رو اجرا کنید.
راهکار دوم استفاده از Entity Framework Code First، شما مدل رو از روی بانک مورد نظر ایجاد کنید، بعد بوسیله خود Entity Framework می تونید Database رو به راحتی و با نوشتن یک خط کد ایجاد کنید.
شما باید بوسیله متد MapPath که در شئ Server تعریف شده استفاده کنید. برای مثال:
var scriptPath = HttpContext.Current.Server.MapPath("~/Files/db_script.sql");
متد بالا آدرس فایلی با نام db__script.sql که در پوشه Files واقع در پوشه اصلی وب سایت قرار داره رو بر میگردونه.
SqlConnection connect = new SqlConnection(Connection);
var path = HttpContext.Current.Server.MapPath("~Tablescript/cms.txt");
string script = File.ReadAllText(path);
SqlCommand command = new SqlCommand(script, connect);
connect.Open();
command.ExecuteNonQuery();
connect.Close();
شما به عنوان متن کوئری، آدرس فایل رو به SqlCommand ارسال کردید. شما باید با File.ReadAllText ابتدا محتویات فایل رو بخونید و محتویات رو به SqlCommand ارسال کنید. به کد بالا بنده نوشتم مجدد نگاه کنید.
دوست عزیز، آدرسی که شما استفاده می کنید به صورت Relative هست و باید این آدرس به آدرس Absolute تبدیل بشه:
SqlConnection connect = new SqlConnection(Connection); var path = HttpContext.Current.Server.MapPath("~Tablescript/cms.txt"); string script = File.ReadAllText(path); SqlCommand command = new SqlCommand(script, connect); connect.Open(); command.ExecuteNonQuery(); connect.Close();