-
March 3rd, 2006, 03:44 AM
#1
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
-
March 3rd, 2006, 03:54 AM
#2
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.
-
March 3rd, 2006, 05:06 AM
#3
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
-
September 10th, 2008, 05:03 AM
#4
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
-
Forum Rules
|
Click Here to Expand Forum to Full Width
|