当我的 MS Access 数据库中选中(复选框(列时,我正在尝试将多个列从一个表复制到另一个表(两个表中的列名相同(。我知道我可以使用Insert Into
SQL查询,但它似乎不起作用。
当我尝试运行它时,我只是得到
插入语句中的语法错误
这是我写的:
INSERT INTO Fauna_ATT (Burn ID, Burn Name, Value Effected, Pre Burn Action Details, During Burn Action Details, Post Burn Action Details)
SELECT Burn ID, Burn Name, Value Effected, Pre Burn Action Details, During Burn Action Details, Post Burn Action Details
FROM EPFP
WHERE ATT="TRUE";
Fauna_ATT
是我的表,我希望放置列
我要复制Burn ID, Burn Name, Value Effected, Pre Burn Actions, During Burn Actions and Post Burn Actions
列
EPFP
是我的表,我希望列来自,我只希望在勾选ATT
(复选框列(时复制列。
将
列名括在"[]"中
INSERT INTO Fauna_ATT ([Burn ID], [Burn Name], [Value Effected], [Pre Burn Action Details], [During Burn Action Details], [Post Burn Action Details])
SELECT [Burn ID], [Burn Name], [Value Effected], [Pre Burn Action Details], [During Burn Action Details], [Post Burn Action Details]
FROM EPFP
WHERE ATT=1;
有关何时将列名称括在括号中的详细信息,请参阅此处
OleDbConnection conn;
OleDbCommand cmd;
OleDbDataReader dr;
private void connectDb()
{
conn = new OleDbConnection(@"Your Connection String");
conn.Open();//initialization of your connection
}
private void performCommandOne()
{
String command1 = "INSERT INTO Fauna_ATT values(@Burn_ID, @Burn_Name,
@Value_Effected,
@Pre_Burn_Action_Details, @During_Burn_Action_Details,
@Post_Burn_Action_Details)";
/*insert statement and the name of your coloumns in your
database must be no space */
/*this code dislays like this.
if you perform the insert processs..*/
/*connection of your database must be initialize first*/
this.connectDb();
cmd = new OleDbCommand(command1,conn);
cmd.Parameters.AddWithValue("@Burn_ID", "Fields for Burn_ID");
cmd.Parameters.AddWithValue("@Burn_Name", "Fields for Burn_Name");
cmd.Parameters.AddWithValue("@Value_Effected", "Fields for Value_Effected");
cmd.Parameters.AddWithValue("@Pre_Burn_Action_Details", "Fields for Pre_Burn_Action_Details");
cmd.Parameters.AddWithValue("@During_Burn_Action_Details", "Fields for During_Burn_Action_Details");
cmd.Parameters.AddWithValue("@Post_Burn_Action_Details", "Post_Burn_Action_Details");
cmd.ExecutedNonQuery();
conn.Close();
}
private void performCommandTwo()
{
String commandTwo = "SELECT Burn_ID, Burn_Name, Value_Effected,
Pre_Burn_Action_Details,
During_Burn_Action_Details, Post_Burn_Action_Details
FROM EPFP
WHERE ATT='TRUE'";
this.connectDb();
cmd = new OleDbCommand(commandTwo,conn);
cmd.Parameters.AddWithValue("@ATT", "fOR aTT FIELDS");
dr = cmd.ExcecuteReader();
if(dr.Read())
{
//Found the value
}else
{
//values is not exist..
}
}