PDA

View Full Version : سوال: این کوئری رو کجا توی دستوراتم بذارم؟



neda_dela
سه شنبه 15 تیر 1389, 05:29 صبح
با سلام:لبخندساده:
من توی فرمم یه دکمه دارم که با کلیک کردن اون اطلاعات موجود در یکی از جداول بانک که با شرط موجود صدق می کنه ، به جدول دیگه ای که همزمان ساخته مشه منتقل می شه
حالا مشکل اینجاست که این دستور ساخت جدول نباید اینجا باشه چون با هر بار کلیک دکمه دوباره میخاد اون جدول رو بسازه که قبلا ساخته شده
این دستورات:


private void button1_Click(object sender, EventArgs e)
{
SqlDataAdapter da = new SqlDataAdapter();
SqlConnection con = new SqlConnection();
SqlCommand com = new SqlCommand();
com.CommandText = "create table archivst(code bigint NOT NULL primary key,id bigint NOT NULL,firstname nvarchar(50) NOT NULL,lastname nvarchar(50) NOT NULL,sath nvarchar(50) NOT NULL,term nvarchar(50) NOT NULL,years nvarchar(50) NOT NULL,days nvarchar(50) NOT NULL,educator nvarchar(50) NOT NULL,classnum nvarchar(50) NOT NULL,clock nvarchar(50) NOT NULL,payeh nvarchar(50) NOT NULL,school nvarchar(50),boss nvarchar(50),teacher nvarchar(50),shift nvarchar(50),tarikh text NOT NULL,money nvarchar(50) NOT NULL,maharat nvarchar(100),paper nvarchar(50),onvan nvarchar(500),inneed nvarchar(50)) insert into archivst select * from [st-sabt] where years='" + textBox1.Text + "'";
com.Connection = con;
com.CommandType = CommandType.Text;
con.ConnectionString = "data source=.;initial catalog=quran;integrated security=True";
da.SelectCommand = com;
con.Open();
com.ExecuteNonQuery();
com.CommandText = "delete [st-sabt] where years=" + textBox1.Text;
com.ExecuteNonQuery();
con.Close();
MessageBox.Show("مêéیں¢ ں êيهçی¢ ںë¤ںê ¬§");
}

حالا من موندم که با این دستور چکار کنم؟:لبخندساده:

M.YasPro
سه شنبه 15 تیر 1389, 07:21 صبح
سلام
چرا این جدول archivst رو از قبل نمیسازید ؟

ozzy_mra
سه شنبه 15 تیر 1389, 07:42 صبح
سلام
اگه می خوای تیبلت فقط موقعی که باهاش کار داری ساخته بشه و هر بار دو باره ساخته بشه از temptable های sql استفاده کن که بعد از disconnect شدن خودش پاک میشه

neda_dela
چهارشنبه 16 تیر 1389, 05:17 صبح
سلام
چرا این جدول archivst رو از قبل نمیسازید ؟
خب تنها دلیلش اینه که این جدول فقط و فقط زمانی ساخته میشه که کاربر بخاد رکوردها رو به بایگانی منتقل کنه اگه دلش بخاد که همه رکوردها توی همون تیبل اصلی باشن خب هیچ وقت گزینه انتقال به بایگانی رو کلیک نمی کنه و این تیبل ساخته نمیشه
البته خب مسلما نیازش میشه ولی مزیتش اینه که حد اقل تا زمانی که کاربر نخواسته این تیبل ساخته نمشه
من توی این تاپیک نتیجه گرفتم
http://barnamenevis.org/forum/showthread.php?t=229081&page=2
لطفا راهنمایی بفرمایید

neda_dela
چهارشنبه 16 تیر 1389, 05:19 صبح
سلام
اگه می خوای تیبلت فقط موقعی که باهاش کار داری ساخته بشه و هر بار دو باره ساخته بشه از temptable های sql استفاده کن که بعد از disconnect شدن خودش پاک میشه
درسته میخام فقط موقعی که باهاش کار دارم ساخته بشه ولی نمیخام هر بار دوباره ساخته دقیقا الان مشکل من اینه
یه بار برای همیشه
حالا این دستور رو کجا بذارم؟
راهنمایییییییییییییییی

M.YasPro
چهارشنبه 16 تیر 1389, 07:19 صبح
من دلیل قانع کننده ای توی اون تاپیک برای اینکه از قبل جدول ارشیو رو نسازی پیدا نکردم.

ozzy_mra
چهارشنبه 16 تیر 1389, 07:34 صبح
منم با نظر M.YasPro موافقم
تیبلتو بساز ولی خب اگه لازمش نداری خالی بزارش واگه خواستی اطلاعات رو از اول بسازی یا truncate کنش . temptable ها که گفتم برای داده های موقت در حجم بالاست و برای بایگانی کردن کاربرد نداره