2012-08-14 47 views
1

的排序時,我有點菜單=>保持事件:從鼠標排序=>更新:jQuery的

菜單:

Home(1) News(2) About(3) => News(2)  Home(1)  About(3) 

事件將節省同時定位到兩張桌子。

我知道使用觸發器可以解決這個問題。但是兩張表的結構不同。所以,我不能使用觸發器。

現在,我想插入/更新將看起來像兩個表。

表1:

  Order 
      2 
      1 
      3 

表2:

  Order: 213 

如何更新/插入用於在同一時間上面兩個表。

韓國社交協會很多

這是更新排序,以兩個表的事件,但它似乎更新到Table

  //-------Update for table: Items---------// 
      command.Connection = connection; 
      command.CommandText = "UpdateItemsOrder"; 
      command.CommandType = CommandType.StoredProcedure; 
      SqlParameter paramUserName = new SqlParameter("@ItemOrder", SqlDbType.VarChar, 255); 
      paramUserName.Value = itemOrder; 
      command.Parameters.Add(paramUserName); 
      //----Update for table: NewOrders(get data from column ItemOrder)--// 
      string username = "aloha"; 
      DemoDataContext dc = new DemoDataContext(); 
      var strJoin= (from m in dc.Items 
          select m.ItemOrder); 
      var result = string.Join("", strJoin.Select(x => x.Value).ToArray()); 
      var reUpdateOrder = dc.NewOrders.Single(a => a.UserOrder.Equals(username)); 
      reUpdateOrder.NewItemOrder = result; 
      dc.SubmitChanges(); 
      connection.Open(); 
      return (command.ExecuteNonQuery() > 0); 

它插入只表:項目,當時沒有得到項目數據更新表格:NewOrders。 連接始終打開進行排序。

請幫幫我。

+0

您現在使用什麼代碼來執行此操作? – 2012-08-14 15:18:48

回答

0

這只是一個猜測,但它看起來好像NewOrders可能沒有建立主鍵。您可能能夠通過用戶名選擇訂單,但沒有主鍵,LINQ到SQL將不知道如何找到更新記錄呼籲dc.SubmitChanges();

此外,是否有任何特殊原因您離開SqlConnection打開排序?這在某些情況下會導致線程問題,通常最好留給連接池來處理。

SubmitChanges()將打開它自己的連接,所以不需要保持SqlConnection打開它。您應該分別處理每個更新:

//-------Update for table: Items---------// 
using(SqlConnection conn = new SqlConnection(...)) 
{ 
    SqlCommand command = new SqlCommand(); 
    command.Connection = conn; 
    command.CommandText = "UpdateItemsOrder"; 
    command.CommandType = CommandType.StoredProcedure; 

    SqlParameter paramUserName = new SqlParameter("@ItemOrder", SqlDbType.VarChar, 255); 
    paramUserName.Value = itemOrder; 
    command.Parameters.Add(paramUserName); 

    conn.Open(); 
    command.ExecuteNonQuery(); 
} 

//----Update for table: NewOrders(get data from column ItemOrder)--// 
string username = "aloha"; 
DemoDataContext dc = new DemoDataContext(); 
var strJoin = (from m in dc.Items 
       select m.ItemOrder); 

var result = string.Join("", strJoin.Select(x => x.Value).ToArray()); 
var reUpdateOrder = dc.NewOrders.Single(a => a.UserOrder.Equals(username)); 
reUpdateOrder.NewItemOrder = result; 
dc.SubmitChanges(); 
+0

tks您的評論! NewOrders的PK成立。 – aloha 2012-08-14 17:49:57

+0

由於事件排序不允許關閉連接。所以,同時更新兩個表似乎不能。第二個表從table1中獲取數據。你可以通過其他方式來猜測我解決這個問題。太多了。 ! – aloha 2012-08-14 18:09:15

+0

tks朋友...我剛剛完成了它.. :)。 – aloha 2012-08-15 03:22:31