none
請問資料庫Insert INto問題 RRS feed

  • 問題

  • Dear Sir

    請問一下小弟的資料庫無法"實際"存入資料庫內

    好像只是暫存於"暫存資料庫"

    應該是少了步驟,煩請指導一番

    程式碼如下:

    Dim conn2 As New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=database\personnal.mdb")
                        Dim SelectUserStrSQL2 As String = "insert into FeeDataKey(DataMonth) values('" & KeyData & "')"
                        Dim adapter2 As New OleDbDataAdapter
                        Dim dataset2 As DataSet = New DataSet
                        adapter2.SelectCommand = New OleDbCommand(SelectUserStrSQL2, conn2)
                        Try
                            conn2.Open()
                            adapter2.Fill(dataset2, "InsertDB")
                        Catch ex As Exception
                            SystemMessage.Text = ex.Message
                            conn2.Close()
                        End Try

     

    謝謝指導

    2006年3月2日 上午 08:35

解答

  • 您好:
    您這段是將資料 Fill 到 DataSet 中 。
    您所使用的是 SelectCommand ,
    您可以更正您的  da.InsertCommand  這個命令是 INSERT 的命令。
    再透過 SelectCommand  將資料FILL 到DATASET中
    詳細您可以參考
    ms-help://MS.MSDNQTR.2003FEB.1028/cpref/html/frlrfSystemDataSqlClientSqlDataAdapterClassInsertCommandTopic.htm
     
    public static SqlDataAdapter CreateCustomerAdapter(SqlConnection conn)
    {
      SqlDataAdapter da = new SqlDataAdapter();
      SqlCommand cmd;

      // Create the SelectCommand.

      cmd = new SqlCommand("SELECT * FROM Customers " +
                           "WHERE Country = @Country AND City = @City", conn);

      cmd.Parameters.Add("@Country", SqlDbType.NVarChar, 15);
      cmd.Parameters.Add("@City", SqlDbType.NVarChar, 15);

      da.SelectCommand = cmd;

      // Create the InsertCommand.

      cmd = new SqlCommand("INSERT INTO Customers (CustomerID, CompanyName) " +
                           "VALUES (@CustomerID, @CompanyName)", conn);

      cmd.Parameters.Add("@CustomerID", SqlDbType.NChar, 5, "CustomerID");
      cmd.Parameters.Add("@CompanyName", SqlDbType.NVarChar, 40, "CompanyName");

      da.InsertCommand = cmd;

      return da;
    }

    2006年3月2日 上午 08:50

所有回覆

  • 您好:
    您這段是將資料 Fill 到 DataSet 中 。
    您所使用的是 SelectCommand ,
    您可以更正您的  da.InsertCommand  這個命令是 INSERT 的命令。
    再透過 SelectCommand  將資料FILL 到DATASET中
    詳細您可以參考
    ms-help://MS.MSDNQTR.2003FEB.1028/cpref/html/frlrfSystemDataSqlClientSqlDataAdapterClassInsertCommandTopic.htm
     
    public static SqlDataAdapter CreateCustomerAdapter(SqlConnection conn)
    {
      SqlDataAdapter da = new SqlDataAdapter();
      SqlCommand cmd;

      // Create the SelectCommand.

      cmd = new SqlCommand("SELECT * FROM Customers " +
                           "WHERE Country = @Country AND City = @City", conn);

      cmd.Parameters.Add("@Country", SqlDbType.NVarChar, 15);
      cmd.Parameters.Add("@City", SqlDbType.NVarChar, 15);

      da.SelectCommand = cmd;

      // Create the InsertCommand.

      cmd = new SqlCommand("INSERT INTO Customers (CustomerID, CompanyName) " +
                           "VALUES (@CustomerID, @CompanyName)", conn);

      cmd.Parameters.Add("@CustomerID", SqlDbType.NChar, 5, "CustomerID");
      cmd.Parameters.Add("@CompanyName", SqlDbType.NVarChar, 40, "CompanyName");

      da.InsertCommand = cmd;

      return da;
    }

    2006年3月2日 上午 08:50
  •  Dim conn2 As New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=database\personnal.mdb")
                        Dim SelectUserStrSQL2 As String = "insert into FeeDataKey(DataMonth) values('" & KeyData & "')"
                        Dim cmd As OleDbCommand = New OleDbCommand(SelectUserStrSQL2, conn2)
                        Try
                            conn2.Open()
                            cmd.ExecuteNonQuery()
                        Catch ex As Exception
                            SystemMessage.Text = ex.Message
                            conn2.Close()
                        End Try

     

    這樣就可以了

    謝謝先進的指導

    感恩

    2006年3月2日 上午 09:23