该名称在当前上下文中不存在

时间:2014-02-28 18:14:57

标签: oracle c#-4.0 visual-studio-2012

我正在尝试使用C#vs2012将文件上传到Oracle数据库。这是我第一次这样做,尤其是Oracle。我只是按照我在网上找到的一个例子,但在我运行代码之前我遇到了一些错误,这些代码告诉我某些类型或名称空间不存在。

我遵循的例子:Blob Example

以下是我在Resources_to_upload.aspx.cs中用红色加下划线的代码

  objCmd
  objConn

我的代码:

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.Data;
using System.IO;
using System.Text;

public partial class Resources_to_upload : System.Web.UI.Page
{

protected void Page_Load(object sender, EventArgs e)
{

}
protected void cmdUpload_Click(object sender, EventArgs e)
{
    try
    {
        if (fileUploadDocument.PostedFile.ContentLength > 0)
        {
            // Get the File name and Extension
            string FileName = Path.GetFileName(fileUploadDocument.PostedFile.FileName);
            string FileExtension = Path.GetExtension(fileUploadDocument.PostedFile.FileName);
            //
            // Extract the content of the Document into a Byte array
            int intlength = fileUploadDocument.PostedFile.ContentLength;
            Byte[] byteData = new Byte[intlength];
            fileUploadDocument.PostedFile.InputStream.Read(byteData, 0, intlength);
            //
            // Save the file to the DB
            string strConn = ConfigurationManager.ConnectionStrings["ConnectionString"].ToString();
            object Conn = new OracleConnection(strConn);
            //
            StringBuilder strQueryBuilder = new StringBuilder("INSERT INTO RESOURCES(RESOURCES_ID, FILE_NAME, TYPE, RESOURCE_FILE) VALUES (");
            strQueryBuilder.Append("'1', ");
            strQueryBuilder.Append("'" + FileName + "', ");
            strQueryBuilder.Append("'" + FileExtension + "', ");
            strQueryBuilder.Append(" :RESOURCE_FILE)");

            String strQuery = strQueryBuilder.ToString();
            //
            OracleParameter blobParameter = new OracleParameter();
            blobParameter.ParameterName = "Resources_FILE";
            blobParameter.OracleType = OracleType.Blob;
            blobParameter.Direction = ParameterDirection.Input;
            blobParameter.Value = byteData;

            objCmd = new OracleCommand(strQuery, objConn);
            objCmd.Parameters.Add(blobParameter);
            //
            objConn.Open();
            objCmd.ExecuteNonQuery();
            objConn.Close();
            //
            lblMsg.Text = "Document Uploaded Succesfully";
        }
    }
    catch (Exception ex)
    {
        lblMsg.Text = " Error uploading Document: " + ex.Message.ToString();
    }
}

}

请帮助解决此问题。谢谢

1 个答案:

答案 0 :(得分:0)

StringBuilder位于System.Text命名空间中。所以你可以明确地引用它:

System.Text.StringBuilder strQueryBuilder ...

或者在文件中添加using指令:

using System.Text
...
StringBuilder strQueryBuilder ...

对于objCmdobjConn,您在哪里定义?它们不是在您发布的代码中创建的。您可以在此处创建连接对象:

object Conn = new OracleConnection(strConn);

也许您的意思是使用Conn代替objConn?但是你不能在任何地方创建一个命令对象。您需要先声明并实例化变量,然后才能使用它们。