string create = @" create table AMArchives
(
IDVolume NUMBER not null,
IDArchive NUMBER,
ArchiveID nvarchar2(200),
DutyMan nvarchar2(200),
Title nvarchar2(200),
GotTime date,
)
tablespace test";
string insert = string.Format("insert into AMArchives
(IDVolume,IDArchive,ArchiveID,DutyMan,Title,GotTime,Pages,Re,JuanXuHao,TitleFormat,GotTimeSpecial)
values ({0},{1},'{2}','{3}','{4}','{5}')",
IDVolume, IDArchive, ArchiveID, DutyMan, Title, Convert.ToDateTime(GotTime));int IDVolume;
decimal IDArchive;
string ArchiveID;
string DutyMan;
string Title;
string GotTime;运行时显示文字与格式字符串不匹配,现在基本确定是date的原因,高手们告诉下我应该怎么写这段代码啊
(IDVolume,IDArchive,ArchiveID,DutyMan,Title,GotTime,Pages,Re,JuanXuHao,TitleFormat,GotTimeSpecial)
values ('"+IDVolume+"','"+IDArchive+"','"+ArchiveID+"','"+DutyMan+"','"+Title+"',"+Convert.ToDateTime(GotTime));
或者使用参数的方式也可以
"+Convert.ToDateTime(GotTime)+")";
"+变量+" : 如果变量不是string, 这样写到sql语句中
'"+变量+"' :如果变量是string, 这样写到sql语句中
在你的Insert语句中插入date那一列的时候,调用一个库中的类型转换函数 好像是Convert(类型,值),完后你在code中给这个数据赋值的时候直接给它一个string类型的
OracleCommand cmd=new OracleCommand();cmd.CommandType = CommandType.Text
cmd.Connection = conn;
cmd.CommandText = sqlstr;string sqlstr="insert into AMArchives(IDVolume,IDArchive,ArchiveID,DutyMan,Title,GotTime,Pages,Re,JuanXuHao,TitleFormat,GotTimeSpecial) values(:IDVolume,:IDArchive,:ArchiveID ,:DutyMan ,:Title ,:GotTime)";cmd.Praramerters.Add(":IDVolume",OracleType.Number);
cmd.Praramerters.Add(":IDArchive",OracleType.Number);
cmd.Praramerters.Add(":ArchiveID",OracleType.nvarchar(100));
cmd.Praramerters.Add(":DutyMan",OracleType.nvarchar(100));
cmd.Praramerters.Add(":GotTime",OracleType.Date);cmd.Praramerters[0].Value=IDVolume;
cmd.Praramerters[1].Value=IDArchive
cmd.Praramerters[2].Value=ArchiveID;
cmd.Praramerters[3].Value=DutyMan;
cmd.Praramerters[4].Value=GotTime;cmd.ExcuteNoneQuery();
To_Date('{5}','yyyy-mm-dd hh24:mi:ss')
谢谢楼上各位了