积极答复者
一个上传文件代码的问题

问题
-
using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Collections.Generic;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Data.SqlClient;
public partial class UploadFile : System.Web.UI.Page
{
string strUser;
protected void Page_Load(object sender, EventArgs e)
{
strUser = Request.QueryString["username"];
}
protected void btnUpload_Click(object sender, EventArgs e)
{
string strFlieName;
string strFileType;
Random ran = new Random();
//filename由时间加三位随机数组成
string strFileISN = DateTime.Now.ToString("yyyyMMddhhmmss") + ran.Next(0, 999);
string strSq1;
int iFileSize;
if (FileUpload1.PostedFile.FileName != null)
{
//存在上传文件
strFlieName = FileUpload1.PostedFile.FileName;
strFileType = strFlieName.Substring(strFlieName.LastIndexOf(".") + 1);
strFlieName = strFlieName.Substring(strFlieName.LastIndexOf("\\") + 1);
iFileSize = FileUpload1.PostedFile.ContentLength;
try
{
#region 判断保存的文件是否存在
string strUpPath = @"uploadfiles\";
//文件夹不存在的时候,创建文件夹
if (!System.IO.Directory.Exists(Server.MapPath(strUpPath)))
{
System.IO.Directory.CreateDirectory(Server.MapPath(strUpPath));
}
string strUrl = Server.MapPath(strUpPath + @"\" + this.FileUpload1.FileName);
FileUpload1.SaveAs(strUrl);
lblResult.Text = "文件上传成功";
#endregion
}
catch
{
lblResult.Text = "文件上传失败";
}
clsDB dob = new clsDB();
strSq1 = "insert into userfile(fileisn,filename,filetype,filesize,creator)values('" + strFileISN + "','" + strFlieName + "','" + strFileType + "','" + iFileSize.ToString() + "','" + strUser + "')";
dbo.ExecuteNoReturn(strSq1);
dbo.killMe();
}
else
{
lblResult.Text = "请选择要上传的文件";
}
}
}运行之后……
编译错误
说明: 在编译向该请求提供服务所需资源的过程中出现错误。请检查下列特定错误详细信息并适当地修改源代码。
编译器错误消息: CS0246: 未能找到类型或命名空间名称“clsDB”(是否缺少 using 指令或程序集引用?)
源错误:行 54: lblResult.Text = "文件上传失败"; 行 55: } 行 56: clsDB dob = new clsDB(); 行 57: strSq1 = "insert into userfile(fileisn,filename,filetype,filesize,creator)values('" + strFileISN + "','" + strFlieName + "','" + strFileType + "','" + iFileSize.ToString() + "','" + strUser + "')"; 行 58: dbo.ExecuteNoReturn(strSq1);
源文件: d:\Users\Joyce\Documents\thesisss\UploadFile.aspx.cs 行: 56 应该怎么改?
答案
-
如果有時間的話,我還是鼓勵你找出問題所在。
這樣如果以後需要存到資料庫的時候(機會應該很大),就知道如何解決。
如果是因為Exception造成的,有很多可能,例如是SQL語法錯誤(可以用 x2009again提到的,在SQL Server 執行看看)或者也有可能是你的connection有問題。
總而言之,有時間就試著把問題找出來,因為以後可能會遇到一樣的問題。
以上希望對你有幫助。
- 已建议为答案 AlanTsai 2013年7月13日 3:18
- 已标记为答案 Will ShaoMicrosoft employee, Moderator 2013年7月17日 2:02
全部回复
-
public string ExecuteNoReturn(string strSql)
{
string strReturn;
SqlCommand myCommand = new SqlCommand(strSql, Connection);
try
{
if(Connection.State==ConnectionState.Closed)
Connection.Open();
myCommand.ExecuteNonQuery();
strReturn = "成功";
}
catch
{
strReturn = "失败";
}
myCommand.Dispose();
Connection.Close();
return strReturn;
}这样对吗?我是新手
-
如果有時間的話,我還是鼓勵你找出問題所在。
這樣如果以後需要存到資料庫的時候(機會應該很大),就知道如何解決。
如果是因為Exception造成的,有很多可能,例如是SQL語法錯誤(可以用 x2009again提到的,在SQL Server 執行看看)或者也有可能是你的connection有問題。
總而言之,有時間就試著把問題找出來,因為以後可能會遇到一樣的問題。
以上希望對你有幫助。
- 已建议为答案 AlanTsai 2013年7月13日 3:18
- 已标记为答案 Will ShaoMicrosoft employee, Moderator 2013年7月17日 2:02