【发布时间】:2014-04-14 05:42:55
【问题描述】:
我之前遇到的错误是我无法将 NULL 值插入到 resources_id 中,所以我将 resources_id 添加到插入值中以避免这个问题,但是当我这样做时,我得到了这个错误:
ORA-01722: 无效的数字 C#
第 56 行:cmd.ExecuteNonQuery();。
我之前为避免这个问题所做的就是删除了not Null 并将我的表中的所有内容都保留为空,它可以工作,但它给我带来了其他我发现很难解决的问题,所以我决定回到主要问题并将NOT NULL 添加到我数据库中的resources_id 中。
请帮忙解决这个问题。
我遇到的另一个问题是参数中的 resources_id 无法识别
我的代码:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data.OracleClient;
using System.Configuration;
using System.IO;
public partial class Lecturer_upload_resources : System.Web.UI.Page
{
string strCon = "Data Source=****;Persist Security Info=True;User ID=****;Password=****;Unicode=false";
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
BindGridviewData();
}
}
// Bind Gridview Data
private void BindGridviewData()
{
using (OracleConnection con = new OracleConnection(strCon))
{
using (OracleCommand cmd = new OracleCommand())
{
cmd.CommandText = "select * from resource1";
cmd.Connection = con;
con.Open();
gvDetails.DataSource = cmd.ExecuteReader();
gvDetails.DataBind();
con.Close();
}
}
}
// Save files to Folder and files path in database
protected void btnUpload_Click(object sender, EventArgs e)
{
string filename = Path.GetFileName(fileUpload1.PostedFile.FileName);
Stream str = fileUpload1.PostedFile.InputStream;
BinaryReader br = new BinaryReader(str);
Byte[] size = br.ReadBytes((int)str.Length);
using (OracleConnection con = new OracleConnection(strCon))
{
using (OracleCommand cmd = new OracleCommand())
{
cmd.CommandText = "insert into resource1(Resources_id,FileName,fileType,Filedata) values(:Resources_id,:FileName,:FileType,:FileData)";
cmd.Parameters.AddWithValue(":Resources_id",Resources_id);
cmd.Parameters.AddWithValue(":FileName", filename);
cmd.Parameters.AddWithValue(":FileType", "application/word");
cmd.Parameters.AddWithValue(":FileData", size);
cmd.Connection = con;
con.Open();
cmd.ExecuteNonQuery();
con.Close();
BindGridviewData();
}
}
}
【问题讨论】:
-
我没有看到你在任何地方声明或分配任何值给
Resources_id? -
正如我所说,我添加了 resources_id 来解决我之前遇到的问题,所以我不知道要添加什么才能让我的代码正常工作。我只是添加到参数中,如您在我的代码
-
其他参数被声明并赋值(如
name),你需要对Resources_id做同样的事情。你必须决定应该为它插入什么值以及什么类型是合适的.. -
感谢重播。当我尝试将其定义为字符串 Resources_id = FileUpload1.PostedFile.Resources_id;我收到 PostedFile 的错误无法识别
-
也许您想要在服务器端自动增加
Resources_id字段?如果是这样,您可以在该列上设置AUTO_INCREMENT属性并将其全部放在插入之外。
标签: c# oracle visual-studio-2012