CodeGuru Home VC++ / MFC / C++ .NET / C# Visual Basic VB Forums Developer.com
Results 1 to 4 of 4
  1. #1
    Join Date
    Apr 2003
    Location
    Concordia sulla Secchia (MO) Italy
    Posts
    202

    I'm not able to add a column on a database table

    I need to add a new column in a DB.
    I write this code but it doesn't works (i have removed try catch block):
    Code:
    OleDbDataAdapter SingleMDBAdapter ;
    DataSet SingleMDBDataSet;
    string strQuery = "SELECT * FROM ["+ActualTableName+"]";
    SingleMDBAdapter = new OleDbDataAdapter(strQuery,SingleMDBConnection);
    SingleMDBDataSet = new DataSet();
    SingleMDBAdapter.Fill(SingleMDBDataSet);
    if (SingleMDBDataSet.Tables[0].Columns.Contains("String1"))
    {
       if (!SingleMDBDataSet.Tables[0].Columns.Contains("String2"))
       {
           SingleMDBDataSet.Tables[0].Columns.Add("String2");
           SingleMDBAdapter.Update(SingleMDBDataSet);
       }
    }
    This code doesn't raise any exception, simply it doesnot put the new column on my access DB.

    Any suggestions?
    Rudy Barbieri

  2. #2
    Join Date
    May 2003
    Location
    Germany
    Posts
    936

    Re: I'm not able to add a column on a database table

    Well, adding a column to your dataset will not be making any changes to your Jet DB file.

    If you want wo add a column to your database you have to send the following SQL statement to your database:
    Code:
    string strQuery = "ALTER TABLE ["+ActualTableName+"] ADD COLUMN NewColumnName NewDataType NewConstraints NewDefaultValue";
    //for example it should looks like
    // ALTER TABLE myTable ADD COLUMN myColumnName VarChar(59) Not Null Default "abc" 
    Last edited by torrud; March 3rd, 2006 at 07:23 AM.
    Useful or not? Rate my posting. Thanks.

  3. #3
    Join Date
    Apr 2003
    Location
    Concordia sulla Secchia (MO) Italy
    Posts
    202

    Re: I'm not able to add a column on a database table

    it works fine, thank you.
    I'm thinking if there is a way to do the insert table using the ADO.NET functions of the framework without using SQL statements.
    Rudy Barbieri

  4. #4
    Join Date
    Mar 2008
    Posts
    10

    Re: I'm not able to add a column on a database table

    I had tried using the alter command but was not able to add the column. Can someone help me

    My code:

    private void UpdateDatabase()
    {
    DataTable dtprojectinfo = GetTable("ProjectInfo");
    int iDatabaseVerison = (int)dtprojectinfo.Rows[0]["DataBaseVersion"];
    if (iDatabaseVerison == 1)
    {
    DataTable dtparticipants = m_DBClient.GetTable(TABLETYPE.PARTICIPANTS);
    DataColumn dc = new DataColumn("PaymentStatus");
    dc.DataType = System.Type.GetType("System.Boolean");
    dc.DefaultValue = false;
    dtparticipants.Columns.Add(dc);
    SaveTable(dtparticipants);
    }

    }

    public DataTable GetTable(string TableName)
    {
    OleDbDataAdapter dataAdapter;
    DataTable datatable = null;
    OpenConnection();
    dataAdapter = new OleDbDataAdapter();
    datatable = new DataTable();
    dataAdapter.SelectCommand = new OleDbCommand(@"SELECT * FROM [" + TableName + "]", m_DBConnection);
    dataAdapter.SelectCommand.Parameters.Add("@Icon", OleDbType.Binary);
    dataAdapter.Fill(datatable);
    datatable.TableName = TableName;
    return datatable;
    }

    ublic void SaveTable(DataTable dataTable)
    {
    try
    {
    OleDbDataAdapter dataAdapter;
    dataAdapter = new OleDbDataAdapter();
    dataAdapter.SelectCommand = new OleDbCommand(@""ALTER TABLE [" + ActualTableName + "] ADD COLUMN Payment TEXT(25)", m_DBConnection);
    OleDbCommandBuilder cb = new OleDbCommandBuilder(dataAdapter);
    dataAdapter.AcceptChangesDuringUpdate = true;
    OpenConnection();
    int count = dataAdapter.Update(dataTable);

    }

    }

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  





Click Here to Expand Forum to Full Width

Featured