none
請教從C#下SQL語法寫入資料庫 RRS feed

  • 問題

  • 大家好,最近練習到C#利用事件寫入資料表,但是又出現新的錯誤,程式可以執行,但是資料表沒有新增資料 以下是我的程式碼

     String strSQL = "INSERT INTO [test01].[dbo].[Signature] (學生編號,學生簽到時間,簽到是否) values (7406,'2014-03-09',1)";
                SqlConnection conn = new SqlConnection("Data Source=localhost;Initial Catalog=test01;Integrated Security=True");
                conn.Open();
                SqlCommand sqlcommand = new SqlCommand(strSQL, conn);
                sqlcommand.ExecuteNonQuery();
                conn.Close();

    這是我寫在BUTTON事件裡面,我用的是MS SQL 2012 C# 2012

    SQL語法在SQL裡面測試過了,確實會新增,而連線字串也在之前論壇求助的C# EXCEL匯入SQL SERVER裡面使用過 確定無誤

    就不太懂,編譯沒錯,SQL也沒錯,但是事件觸發之後 進去SQL選取資料表看 就是沒有資料= ="到底.....

    2014年3月11日 上午 11:35

解答

  • 用try catch把執行的程式包起來,以偵錯方式查看是否有發生錯誤
    • 已標示為解答 jack111222 2014年3月12日 上午 07:30
    2014年3月11日 上午 11:53
  • 有可能是程式碼沒有寫對位置, 您可以對應用程式進行偵錯, 看Button被按下時是否有執行到上述的程式碼?

    • 已標示為解答 jack111222 2014年3月12日 上午 07:30
    2014年3月11日 下午 01:00
  • 您好,

    上面那段程式Run起來應該是OK的!

    可以加一下顯示影響的筆數,看看程式是否真的有執行到,如下(int affectedCount = sqlcommand.ExecuteNonQuery();),

    String strSQL = "INSERT INTO [test01].[dbo].[Signature] (學生編號,學生簽到時間,簽到是否) values (7406,'2014-03-09',1)";
    SqlConnection conn = new SqlConnection("Data Source=localhost;Initial Catalog=test01;Integrated Security=True");
    conn.Open();
    SqlCommand sqlcommand = new SqlCommand(strSQL, conn);
    int affectedCount = sqlcommand.ExecuteNonQuery();
    conn.Close();
    MessageBox.Show(string.Format("Effect Count:{0}", affectedCount));


    亂馬客blog: http://www.dotblogs.com.tw/rainmaker/

    • 已標示為解答 jack111222 2014年3月12日 上午 07:30
    2014年3月12日 上午 01:40

所有回覆

  • 用try catch把執行的程式包起來,以偵錯方式查看是否有發生錯誤
    • 已標示為解答 jack111222 2014年3月12日 上午 07:30
    2014年3月11日 上午 11:53
  • 有可能是程式碼沒有寫對位置, 您可以對應用程式進行偵錯, 看Button被按下時是否有執行到上述的程式碼?

    • 已標示為解答 jack111222 2014年3月12日 上午 07:30
    2014年3月11日 下午 01:00
  • 您好,

    上面那段程式Run起來應該是OK的!

    可以加一下顯示影響的筆數,看看程式是否真的有執行到,如下(int affectedCount = sqlcommand.ExecuteNonQuery();),

    String strSQL = "INSERT INTO [test01].[dbo].[Signature] (學生編號,學生簽到時間,簽到是否) values (7406,'2014-03-09',1)";
    SqlConnection conn = new SqlConnection("Data Source=localhost;Initial Catalog=test01;Integrated Security=True");
    conn.Open();
    SqlCommand sqlcommand = new SqlCommand(strSQL, conn);
    int affectedCount = sqlcommand.ExecuteNonQuery();
    conn.Close();
    MessageBox.Show(string.Format("Effect Count:{0}", affectedCount));


    亂馬客blog: http://www.dotblogs.com.tw/rainmaker/

    • 已標示為解答 jack111222 2014年3月12日 上午 07:30
    2014年3月12日 上午 01:40
  • 會不會連線字串根本就沒連到?

    有時候你的字串在別的軟體可以用,是因為幕後有加料。

    樓主的CODE連TRY都沒包起來看錯誤,

    建議從基礎打起吧,這在各種物件導向語言開發都是基本中的基本。

    2014年3月12日 上午 05:56
  • 謝謝各位的幫忙,是成功了,但是我也不知道程式事發生什麼問題,我原本是寫在一個button事件裡面,之後照亂馬客的方法加了一個box來看,發現那個button事件處發之後根本沒有執行=.="結果新增一個button重新寫入事件處理,這次更扯,聯button都沒看到,程式編譯也過@@!?昨天晚上搞了很久還是沒把那鬼隱的button弄出來,就砍掉重寫了...就成功了....


    2014年3月12日 上午 07:30
  • 編譯如果在輸出視窗中出現錯誤訊息表示沒過,不是沒有對話盒提示才算沒過 ...

    看起來像是沒有把 button 的 click 事件設給處理常式。


    強力監督SQL Injection問題!!

      • 小朱的技術隨手寫:http://www.dotblogs.com.tw/regionbbs/
      • 雲端學堂Facebook: http://www.facebook.com/studyazure

    2014年3月12日 上午 08:21
    版主