我的Oracle表的结构为:
create table Pic_info(
PicDate date not null, //图片日期
Unit varchar2(40) not null, //单位
Class varchar2(16) not null, //图片类型
PicName varchar2(30) not null, //图片名称
Pic blob not null, //图片
yielder varchar2(30) not null, //提供者
yieldDate date not null, //提供日期
other varchar2(100) //其他备注信息
);提交按钮的事件驱动代码如下:
private void Button2_Click(object sender, System.EventArgs e)
{
HttpPostedFile UpFile=UpPhoto.PostedFile;
FileLength = UpFile.ContentLength;
try
{
if (FileLength == 0){
Response.Write("<script>alert('请选择上传的图片!')</script>");
}
else {//获得图象并把图象转换为byte[]
HttpPostedFile upPhoto=UpPhoto.PostedFile;
int upPhotoLength=upPhoto.ContentLength;
byte[] PhotoArray=new Byte[upPhotoLength];
Stream PhotoStream=upPhoto.InputStream;
PhotoStream.Read(PhotoArray,0,upPhotoLength); string strSql="Insert into Pic_info (PicDate,Unit,Class,PicName,Pic,yielder,yieldDate,other) values(@PicDate,@Unit,@Class,@PicName,@Pic,@yielder,@yieldDate,@other)";
OracleCommand cmd=new OracleCommand(strSql,oracleConnection1);
cmd.Parameters.Add("@PicDate",OracleType.DateTime).Value=Convert.ToDateTime(TextBox1.Text).ToString("yyyy-MM-dd");
cmd.Parameters.Add("@Unit",OracleType.VarChar,40).Value=TextBox2.Text;
cmd.Parameters.Add("@Class",OracleType.VarChar,16).Value=DropDownList1.SelectedItem.Text.ToString();
cmd.Parameters.Add("@PicName",OracleType.VarChar,30).Value=TextBox3.Text;
cmd.Parameters.Add("@Pic",OracleType.Blob).Value=PhotoArray;
cmd.Parameters.Add("@yielder",OracleType.VarChar,30).Value=TextBox5.Text;
cmd.Parameters.Add("@yieldDate",OracleType.DateTime).Value=Convert.ToDateTime(TextBox6.Text).ToString("yyyy-MM-dd");
cmd.Parameters.Add("@other",OracleType.VarChar,100).Value=TextBox7.Text;
oracleConnection1.Open();
cmd.ExecuteNonQuery();
oracleConnection1.Close();
Response.Write("<script>alert('图片上传成功!')</script>");
}
}
catch (System.Exception ex){
Response.Write(ex.Message.ToString());
}
}
在各个输入控件中输入相应的数据并提交后出现《ORA-01036: 非法的变量名/编号》的异常信息,这到底是那里的问题?该怎么解决?(我是新手,希望能详细点最好)万分感谢各位高手的指点!
create table Pic_info(
PicDate date not null, //图片日期
Unit varchar2(40) not null, //单位
Class varchar2(16) not null, //图片类型
PicName varchar2(30) not null, //图片名称
Pic blob not null, //图片
yielder varchar2(30) not null, //提供者
yieldDate date not null, //提供日期
other varchar2(100) //其他备注信息
);提交按钮的事件驱动代码如下:
private void Button2_Click(object sender, System.EventArgs e)
{
HttpPostedFile UpFile=UpPhoto.PostedFile;
FileLength = UpFile.ContentLength;
try
{
if (FileLength == 0){
Response.Write("<script>alert('请选择上传的图片!')</script>");
}
else {//获得图象并把图象转换为byte[]
HttpPostedFile upPhoto=UpPhoto.PostedFile;
int upPhotoLength=upPhoto.ContentLength;
byte[] PhotoArray=new Byte[upPhotoLength];
Stream PhotoStream=upPhoto.InputStream;
PhotoStream.Read(PhotoArray,0,upPhotoLength); string strSql="Insert into Pic_info (PicDate,Unit,Class,PicName,Pic,yielder,yieldDate,other) values(@PicDate,@Unit,@Class,@PicName,@Pic,@yielder,@yieldDate,@other)";
OracleCommand cmd=new OracleCommand(strSql,oracleConnection1);
cmd.Parameters.Add("@PicDate",OracleType.DateTime).Value=Convert.ToDateTime(TextBox1.Text).ToString("yyyy-MM-dd");
cmd.Parameters.Add("@Unit",OracleType.VarChar,40).Value=TextBox2.Text;
cmd.Parameters.Add("@Class",OracleType.VarChar,16).Value=DropDownList1.SelectedItem.Text.ToString();
cmd.Parameters.Add("@PicName",OracleType.VarChar,30).Value=TextBox3.Text;
cmd.Parameters.Add("@Pic",OracleType.Blob).Value=PhotoArray;
cmd.Parameters.Add("@yielder",OracleType.VarChar,30).Value=TextBox5.Text;
cmd.Parameters.Add("@yieldDate",OracleType.DateTime).Value=Convert.ToDateTime(TextBox6.Text).ToString("yyyy-MM-dd");
cmd.Parameters.Add("@other",OracleType.VarChar,100).Value=TextBox7.Text;
oracleConnection1.Open();
cmd.ExecuteNonQuery();
oracleConnection1.Close();
Response.Write("<script>alert('图片上传成功!')</script>");
}
}
catch (System.Exception ex){
Response.Write(ex.Message.ToString());
}
}
在各个输入控件中输入相应的数据并提交后出现《ORA-01036: 非法的变量名/编号》的异常信息,这到底是那里的问题?该怎么解决?(我是新手,希望能详细点最好)万分感谢各位高手的指点!
这句不对应该这么写
cmd.Parameters.Add("@Pic",OracleType.Binary, size(上传文件的大小)).Value=PhotoArray;