private void button2_Click(object sender, System.EventArgs e)
{
string source="server=ks052;uid=hdh;pwd=huang;database=hdh";
string strsql="select * from tabx"; SqlDataAdapter da=new SqlDataAdapter(strsql,source);
DataSet ds=new DataSet();
da.Fill(ds,"tab");
dataGrid1.SetDataBinding(ds,"tab");
}
{
string source="server=ks052;uid=hdh;pwd=huang;database=hdh";
string strsql="select * from tabx"; SqlDataAdapter da=new SqlDataAdapter(strsql,source);
DataSet ds=new DataSet();
da.Fill(ds,"tab");
dataGrid1.SetDataBinding(ds,"tab");
}
{
string source="server=ks052;uid=hdh;pwd=huang;database=hdh";
string strsql="insert into tabx values('H3',right(cast(year(getdate()) as varchar),1)+cast(month(getdate()) as varchar)+cast(day(getdate()) as varchar),'M',6000)"; SqlConnection scnTest=new SqlConnection(source);
SqlCommand scmTest=new SqlCommand(strsql,scnTest);
scnTest.Open();
scmTest.ExecuteNonQuery();
scnTest.Close();
}
可以
1、手动写,参考楼上
2、明确写出table名字,代价是不能改了
3、用sqlcommandbuilder
但是我在oracle中重新建了一个用户,在新用户中建了一个相同的表,就不行了,就插入不进去,还提示上面的错误。
完整的代码
public class Dataset
{
public Dataset()
{
//
// TODO: 在此处添加构造函数逻辑
//
}
private OleDbDataAdapter adapter;
private OleDbConnection thisConnection;
private System.Data.DataSet dbview=new DataSet();
private string connDB;
private string tabledataset="dataset";
private string tabledatafile="datafile";
private string metatable;
private XmlNodeList nodelist;
private string sql;
private OleDbCommandBuilder dbCommBld ;
private DataRow newRow;
public string InsertDatasetByXml(string SDirectory,string Depodir)
{
//解析xml文件取得数据库的连接串和表
XmlDocument myDoc=new XmlDocument();
myDoc.Load(SDirectory);
XmlElement root=myDoc.DocumentElement;
connDB=root.SelectSingleNode("//Metadata//server//database").Attributes.Item(1).InnerText;
thisConnection=new OleDbConnection(connDB);
thisConnection.Open();
//更新dataset表内容
sql=@"select * from "+tabledataset;
adapter=new OleDbDataAdapter(sql,thisConnection);
dbCommBld = new OleDbCommandBuilder(adapter);
adapter.Fill(dbview,"Dataset"); nodelist=root.SelectNodes("//Metadata//server//database//table//field");
newRow=dbview.Tables["Dataset"].NewRow();
for(int i=0;i<nodelist.Count;i++)
{
if((nodelist[i].Attributes.Item(0).InnerText)=="datasetid")//SelectSingleNode("fieldname");
{
newRow["datasetid"]=nodelist[i].InnerText;
string test=nodelist[i].InnerText;
break;
}
}
XmlNode temp1=root.SelectSingleNode("//Metadata//Format");
XmlNode temp2=root.SelectSingleNode("//Metadata//MainFile");
newRow["mainfile"]=temp2.InnerText;
newRow["format"]="'"+temp1.InnerText;
newRow["depotdir"]=Depodir;
dbview.Tables["Dataset"].Rows.Add(newRow);
adapter.UpdateCommand=dbCommBld.GetUpdateCommand();
adapter.Update(dbview,"Dataset");
}
}
}
(仅是一种参考)