PDA

View Full Version : ایجاد جدول و فیلد برو بروی بانک اطلاعاتی اس کیو ال سرور با کد نویسی



rezaei_y
چهارشنبه 31 خرداد 1391, 22:06 عصر
با سلام به عزیزان برنامه نویس

چند ماه بعد از تحویل پروژه به مشتری ، نیازهای جدیدی برای نرم افزار بوجود آمد حالا به چه صورت جداول جدیدی به بانک اطلاعاتی نرم افزار اضافه کنم

بعد از کلی جستجو متوجه شدم که دستورات اسکیوال را باید داخل یک فایل مثلا تکست نوشت و سپس آنرا روی دیتابیس با sqlcommand اجرا کنی
اما متاسفانه پس از هر بار اجرا با خطای زیر مواجه میشوم لطفا راهنمایی بفرمایید
88529

rezaei_y
پنج شنبه 01 تیر 1391, 00:21 صبح
کسی نیست راهنمایی کنه؟

Alizadeh_ENV
پنج شنبه 01 تیر 1391, 00:23 صبح
اگه درست یادم باشه باید خاصیت CommandType برابر با TextCommand یا همچین چیزی قرار بدی
خاصیت CommandType مربوط به کلاس sqlcommand هست که مشخص میکنه نوع دستوری که قراره اجرا بشه چی هست
با این خطایی که شما داری یعنی این خاصیت الان برابر با stored procedure هست

rezaei_y
پنج شنبه 01 تیر 1391, 06:47 صبح
متاسفانه باز همون خطای قبل رو میده

cmdrun.CommandType = CommandType.Text;
cmdrun.CommandText = "CREATE TABLE test(myId INTEGER CONSTRAINT PRIMARY KEY,myName CHAR(50)";
cmdrun.Connection = keshavarz.conn;

int t = cmdrun.ExecuteNonQuery();

rezaei_y
پنج شنبه 01 تیر 1391, 07:55 صبح
خواهشا راهنمایی کنید؟

rezaei_y
پنج شنبه 01 تیر 1391, 15:07 عصر
یعنی کسی تا بحال به این مساله برخورد نکرده؟ خیلی برام مهم؟پروژه ام رو هواست

rezaei_y
پنج شنبه 01 تیر 1391, 17:18 عصر
متاسفانه درست نشد
نتیجه اجرای کوئری -1 میشه!!!!
cmdrun.CommandType = CommandType.Text;
cmdrun.CommandText = "CREATE TABLE test(myId INTEGER PRIMARY KEY,myName CHAR(50))";
cmdrun.Connection = keshavarz.conn;

int t = cmdrun.ExecuteNonQuery();

Mahmoud.Afrad
پنج شنبه 01 تیر 1391, 17:51 عصر
کوئری هیچ مشکلی نداره. درضمن آخه این دستور یک جدول ایجاد میکنه و روی هیچ سطری تاثیر نداره، معلومه مقدار -1 برمیگردونه. اگر management studio دارید میتونید دیتابیس داخل پوشه debug رو چک کنید و جدول ساخته شده رو مشاهده کنید.

rezaei_y
پنج شنبه 01 تیر 1391, 18:38 عصر
با تشکر از شما دوست عزیز

یه سوال دیگه و اون اینکه چرا زمانی که دستور ایجاد جدول رو از داخل یک فایل تکست میخونم خطا میگیره(could not find store procedure...)
یعنی زمانی که عبارت "CREATE TABLE test(myId INTEGER PRIMARY KEY,myName CHAR(50))" رو از فایل تکست میخونه خطا میگیره

rezaei_y
پنج شنبه 01 تیر 1391, 19:22 عصر
"CREATE TABLE Cabins(id int,Deck int,Size int)"


FileInfo file = new FileInfo(openFileDialog1.FileName);

string script = file.OpenText().ReadToEnd();
cmdrun.CommandType = CommandType.Text;
cmdrun.CommandText = script;
cmdrun.Connection = keshavarz.conn;

int t = cmdrun.ExecuteNonQuery();

Mahmoud.Afrad
پنج شنبه 01 تیر 1391, 19:47 عصر
از دابل کوتیشن در داخل کدهای برنامه استفاده میشه تا نوع استرینگ رو معرفی کنه، ولی وقتی قراره از یک منبع دیگر خوانده بشه و داخل متغیر استرینگ ریخته بشه نیازی به دابل کوتیشن نیست.
CREATE TABLE Cabins(id int,Deck int,Size int)

rezaei_y
پنج شنبه 01 تیر 1391, 19:59 عصر
یک دنیا ممنون