2017-08-16 110 views
1

我(使用serenity.is)ASP.NET項目工作,現在有一個數據庫查詢的問題:爲什麼不執行此SQL服務器INSERT查詢?

[HttpGet] 
[Route("SimonTest/{id=0}/{obj=0}")] 
public ActionResult SimonTest(int id, int obj) 
{ 
    SqlConnection myConn = new SqlConnection(@"Server=(LocalDb)\MSSqlLocalDB;Integrated security=SSPI;database=Serene5_Default_v1"); 

    // skipped code building the following command : 

    command = "INSERT INTO [Serene5_Default_v1].[tcpdump].[Errors] (TimeStp,IdSource,IdDestination,PortSource,PortDestination,ToTheRight,ToTheLeft) VALUES ('11:2','11','1','1','1',1,1);"; 


    System.Diagnostics.Debug.WriteLine(command); 
    SqlCommand myCommand2 = new SqlCommand(listDb, myConn); 


    myCommand2.ExecuteNonQuery(); 

    System.Diagnostics.Debug.WriteLine("Commande exécutée"); 
    myCommand2.Dispose(); 


    myConn.Close(); 
    return View("~/Modules/Default/TcpDump/TcpDumpIndex.cshtml"); 
} 

當我使用Microsoft SQL Server Management Studio中執行查詢INSERT INTO ...,一切正常,但在這裏該命令似乎被跳過(沒有例外引發並且沒有寫入數據庫)

+4

哪裏你到底分配SQL執行你的命令對象?什麼是'listDb'?你是否在構造'SqlCommand'對象時使用'command'? –

+1

'command'!='listDb'。不知道後者的內容是什麼,但這就是你正在執行的內容。 –

+0

好的,該死的..剛開始的時候,我寫了一個新的命令,忘記了每次更改x) –

回答

3

在執行查詢之前,您忘記了將sql文本分配給命令myCommand2.CommandText = command

+0

他確實爲命令分配了一個SQL,構造函數「listDb」是SQL,但它是錯誤的SQL(很可能)。 –

+0

@ LasseV.Karlsen可能將命令文本分配給'listDb'丟失。並且它在sql出錯時拋出異常 –

0

可能是因爲連接不打開爲什麼沒有更新

SqlCommand myCommand2 = new SqlCommand(listDb, myConn.Open()); 
+0

好點,我在帖子中刪除它,但實際上在我的代碼中打開它^^ –

相關問題