PDA

View Full Version : سلکت از جدولی ار یک database و Insert در پایگاه داده ای دیگر



vB.N3T
جمعه 29 بهمن 1395, 15:52 عصر
سلام مهندسین عزیز
من 2 دیتابیس جدا دارم
که از پایگاه اولی با کد زیر.رکورد های که نیاز دارم رو سلک کردم
حالا چطور میتونم این رکود های سلک زده شده رو
در دیتابیس دوم . جدول مربوطه insert کنم ؟

string Select_Data = @"SELECT Baze_Date,User_TimeEnter,User_TimeOut,Date

FROM Tbl_Time where User_CodMeli='" + Select_CodeMeli + "' AND Date BETWEEN '" +Date_Start + "' AND '" + Date_End + "'";

cn = new SqlConnection(Con);
SqlCommand cmd = new SqlCommand(Select_Data,cn);
cmd.Connection = cn;

if (cn.State == ConnectionState.Closed)
{
cn.Open();
cmd.CommandText = Select_Data;
SqlDataAdapter da = new SqlDataAdapter(cmd);
DataTable ds1 = new DataTable();
da.Fill(ds1);

Mahmoud.Afrad
جمعه 29 بهمن 1395, 16:30 عصر
اگر دو دیتابیس را اتچ کرده باشید، به راحتی با یک کوئری میتونید انجام بدید
http://stackoverflow.com/a/3502295

vB.N3T
جمعه 29 بهمن 1395, 16:33 عصر
بله هر دو دیتابیس اتچ هستن
فقط من با سیشاپ میخام این کارو بکنم..دستور سلکت هم زدم و اطلاعات داخل دیتاتیبل ریخته شدن
میخام این دیتاتیبل رو بریزم داخل جدول

Mahmoud.Afrad
جمعه 29 بهمن 1395, 18:08 عصر
مشکلی نیست. با یک کوئری انجام بدید.
SqlConnection cn = new SqlConnection(@"Data Source=.;Initial Catalog=Database1;Integrated Security=True");
string Select_Data =
@"INSERT INTO Database2.dbo.Table_1(User_CodMeli, Baze_Date, User_TimeEnter, User_TimeOut, Date)
SELECT User_CodMeli, Baze_Date, User_TimeEnter, User_TimeOut, Date
FROM Database1.dbo.Table_1 --Tbl_Time
WHERE User_CodMeli=@Select_CodeMeli AND Date BETWEEN @Date_Start AND @Date_End;";
SqlCommand cmd = new SqlCommand(Select_Data, cn);
cmd.Parameters.AddWithValue("@Select_CodeMeli", 12);
cmd.Parameters.AddWithValue("@Date_Start", "1395/01/01");
cmd.Parameters.AddWithValue("@Date_End", "1395/01/31");
if (cn.State != ConnectionState.Open)
{
cn.Open();
}
cmd.ExecuteNonQuery();
MessageBox.Show("Done!");

مگر اینکه بخواهید اطلاعات رو به کاربر نشان بدید و بعد کاربر تصمیم بگیره چه سطرهایی منتقل بشن که در اینصورت میتونید عبارت BulkCopy و یا Bulk Insert رو جستجو کنید.

vB.N3T
شنبه 30 بهمن 1395, 07:46 صبح
ممنون .الان

من بین سطر هام پیمایش میکنم اما فقط سطر اول رو که پیدا میکنه رو درج میکنه
در صورتی که 37 تا رکورد هست

foreach (DataRow row in ds1.Rows)
{

string User_TimeEnter1 = row["User_TimeEnter"].ToString();

string User_TimeOut1 = row["User_TimeOut"].ToString();

string Date_Karkardd = row["Date"].ToString();

string Baze_Date1 = row["Baze_Date"].ToString();
DataSet_AllTableAdapters.Tbl_Karkard_TimeTableAdap ter ds3 = new DataSet_AllTableAdapters.Tbl_Karkard_TimeTableAdap ter();
ds3.Insert_Karkad_Time(int.Parse(Txt_ID_Karkard.Te xt.ToString()), Date_Karkardd.ToString(), User_TimeEnter1.ToString(), User_TimeOut1.ToString(), Baze_Date1.ToString());
}