CREATE PROCEDURE uSP_BooksUploadFile 
     @Title varchar(200), 
     @Doc image, 
     @DocType varchar(4) 
AS 
     INSERT  PKS_SC_DOC(DocTitle,Doc QKDCB,DocType) 
     VALUES (@Title,@Doc QKDCB,@DocType) 
GOcmdUploadDoc   =   new   SqlCommand( "uSP_BooksUploadFile ",BooksConn);
cmdUploadDoc.CommandType   =   CommandType.StoredProcedure;
cmdUploadDoc.Parameters.Add( "@Title   ",SqlDbType.VarChar,200);
cmdUploadDoc.Parameters.Add( "@Doc ",SqlDbType.Image);
cmdUploadDoc.Parameters.Add( "@DocType ",SqlDbType.VarChar,4);
cmdUploadDoc.Parameters[0].Value   =   txtTitle.Text;
cmdUploadDoc.Parameters[1].Value   =   Docbuffer;
cmdUploadDoc.Parameters[2].Value   =   strDocType;
private void btnSubmit_Click(object sender, System.EventArgs e) 
{
     string strDocExt;     
     string strDocType;  //strDocType用于保存上传文件的类型
     int intDocLen;     //用于保存文件大小
     Stream objStream; //Stream用于读取上传数据
     SqlConnection BooksConn;
     SqlCommand cmdUploadDoc;
     if(IsValid)
     {
         if(txtFileContents.PostedFile != null) //判断文件类型
         {  
             strDocExt = CString.Right
               (txtFileContents.PostedFile.FileName,4).ToLower();
             switch(strDocExt)
             { case ".doc": strDocType = "doc"; break;
                case ".ppt": strDocType = "ppt";   break
                case ".htm": strDocType = "htm"; break;
               case ".html": strDocType = "htm"; break;
                case ".jpg": strDocType = "jpg"; break;
                case ".gif": strDocType = "gif"; break;
                default:
         strDocType = "txt"; break;
       }
             intDocLen = txtFileContents.PostedFile.ContentLength; //取得文件的具体大小
             byte[] Docbuffer = new byte[intDocLen]; //设置缓存的具体大小
             objStream = txtFileContents.PostedFile.InputStream;
             objStream.Read(Docbuffer ,0,intDocLen); //文件保存到缓存
             BooksConn = new  
              SqlConnection("Server=Server;UID=sa;Database=PKS");
             cmdUploadDoc = new
              SqlCommand("uSP_BooksUploadFile",BooksConn);
             cmdUploadDoc.CommandType = CommandType.StoredProcedure;
            cmdUploadDoc.Parameters.Add("@Title ",SqlDbType.VarChar,200);
             cmdUploadDoc.Parameters.Add("@Doc",SqlDbType.Image);
             cmdUploadDoc.Parameters.Add("@DocType",SqlDbType.VarChar,4);
             cmdUploadDoc.Parameters[0].Value = txtTitle.Text;
             cmdUploadDoc.Parameters[1].Value = Docbuffer ;
             cmdUploadDoc.Parameters[2].Value = strDocType;
             BooksConn.Open();
             cmdUploadDoc.ExecuteNonQuery();
             BooksConn.Close();
         }
     } 

给每行代码加注释

解决方案 »

  1.   

    //创建存储过程
    CREATE PROCEDURE uSP_BooksUploadFile  
    //定义变量
      @Title varchar(200),  
      @Doc image,  
      @DocType varchar(4)  
    AS  
    //插入的SQL语句
      INSERT PKS_SC_DOC(DocTitle,Doc QKDCB,DocType)  
      VALUES (@Title,@Doc QKDCB,@DocType)  
    GO
    //创建命令
    cmdUploadDoc = new SqlCommand( "uSP_BooksUploadFile ",BooksConn);
    //判断参数的类型
    cmdUploadDoc.CommandType = CommandType.StoredProcedure;
    //给定变量的长度
    cmdUploadDoc.Parameters.Add( "@Title ",SqlDbType.VarChar,200);
    cmdUploadDoc.Parameters.Add( "@Doc ",SqlDbType.Image);
    cmdUploadDoc.Parameters.Add( "@DocType ",SqlDbType.VarChar,4);
    //赋值
    cmdUploadDoc.Parameters[0].Value = txtTitle.Text;
    cmdUploadDoc.Parameters[1].Value = Docbuffer;
    cmdUploadDoc.Parameters[2].Value = strDocType;//按钮的点击事件
    private void btnSubmit_Click(object sender, System.EventArgs e)  
    {
      string strDocExt;   
      string strDocType; //strDocType用于保存上传文件的类型
      int intDocLen; //用于保存文件大小
      Stream objStream; //Stream用于读取上传数据
      SqlConnection BooksConn;//创建数据连接
      SqlCommand cmdUploadDoc;//创建命令对象
      if(IsValid)
      {
      if(txtFileContents.PostedFile != null) //判断文件类型
      {   
      strDocExt = CString.Right
      (txtFileContents.PostedFile.FileName,4).ToLower();
      switch(strDocExt)
      { case ".doc": strDocType = "doc"; break;
      case ".ppt": strDocType = "ppt"; break
      case ".htm": strDocType = "htm"; break;
      case ".html": strDocType = "htm"; break;
      case ".jpg": strDocType = "jpg"; break;
      case ".gif": strDocType = "gif"; break;
      default:
      strDocType = "txt"; break;
      }
      intDocLen = txtFileContents.PostedFile.ContentLength; //取得文件的具体大小
      byte[] Docbuffer = new byte[intDocLen]; //设置缓存的具体大小
      objStream = txtFileContents.PostedFile.InputStream;
      objStream.Read(Docbuffer ,0,intDocLen); //文件保存到缓存
      BooksConn = new   
      SqlConnection("Server=Server;UID=sa;Database=PKS");
      cmdUploadDoc = new
      SqlCommand("uSP_BooksUploadFile",BooksConn);
      cmdUploadDoc.CommandType = CommandType.StoredProcedure;
      cmdUploadDoc.Parameters.Add("@Title ",SqlDbType.VarChar,200);
      cmdUploadDoc.Parameters.Add("@Doc",SqlDbType.Image);
      cmdUploadDoc.Parameters.Add("@DocType",SqlDbType.VarChar,4);
      cmdUploadDoc.Parameters[0].Value = txtTitle.Text;
      cmdUploadDoc.Parameters[1].Value = Docbuffer ;
      cmdUploadDoc.Parameters[2].Value = strDocType;
      BooksConn.Open();
      cmdUploadDoc.ExecuteNonQuery();
      BooksConn.Close();
      }
      }  
    }  
    下面的注释跟上边的有些一样的。
      

  2.   

    CREATE PROCEDURE uSP_BooksUploadFile   //创建存储过程
      @Title varchar(200),    //存储过程参数-title
      @Doc image,             //存储过程参数-doc,image类型的
      @DocType varchar(4)     //存储过程参数-doctype
    AS  
      INSERT PKS_SC_DOC(DocTitle,Doc QKDCB,DocType)  //存储过程中的sql语句-insert语句
      VALUES (@Title,@Doc QKDCB,@DocType)  
    GOcmdUploadDoc = new SqlCommand( "uSP_BooksUploadFile ",BooksConn);  //实例化存储过程
    cmdUploadDoc.CommandType = CommandType.StoredProcedure;      //这行学习????
    cmdUploadDoc.Parameters.Add( "@Title ",SqlDbType.VarChar,200);   //存储过程参数,(参数名,类型,长度)
    cmdUploadDoc.Parameters.Add( "@Doc ",SqlDbType.Image);  //存储过程参数,(参数名,类型,长度)
    cmdUploadDoc.Parameters.Add( "@DocType ",SqlDbType.VarChar,4); //存储过程参数,(参数名,类型,长度)
    cmdUploadDoc.Parameters[0].Value = txtTitle.Text;   //为参数赋值
    cmdUploadDoc.Parameters[1].Value = Docbuffer;    //为参数赋值
    cmdUploadDoc.Parameters[2].Value = strDocType;    //为参数赋值
    //提交事件
    private void btnSubmit_Click(object sender, System.EventArgs e)  
    {
      string strDocExt;   //参数
      string strDocType; //strDocType用于保存上传文件的类型
      int intDocLen; //用于保存文件大小
      Stream objStream; //Stream用于读取上传数据
      SqlConnection BooksConn;   //数据库连接参数
      SqlCommand cmdUploadDoc;   //数据库command对象
      if(IsValid)  //如果提交
      {
      if(txtFileContents.PostedFile != null) //判断文件类型
      {   
      //获取提交的文件名称的右面4位长度的数据--即文件类型
      strDocExt = CString.Right(txtFileContents.PostedFile.FileName,4).ToLower();
      switch(strDocExt)   //判断文件类型
      { case ".doc": strDocType = "doc"; break;
      case ".ppt": strDocType = "ppt"; break
      case ".htm": strDocType = "htm"; break;
      case ".html": strDocType = "htm"; break;
      case ".jpg": strDocType = "jpg"; break;
      case ".gif": strDocType = "gif"; break;
      default:   
      strDocType = "txt"; break;   //默认为“文本文档”型
      }
      intDocLen = txtFileContents.PostedFile.ContentLength; //取得文件的具体大小
      byte[] Docbuffer = new byte[intDocLen]; //设置缓存的具体大小
      objStream = txtFileContents.PostedFile.InputStream;
      objStream.Read(Docbuffer ,0,intDocLen); //文件保存到缓存
      //连接数据库:用户名:sa,密码:pks
      BooksConn = new SqlConnection("Server=Server;UID=sa;Database=PKS");
     //又一存储过程
      cmdUploadDoc = new  SqlCommand("uSP_BooksUploadFile",BooksConn);
      cmdUploadDoc.CommandType = CommandType.StoredProcedure;
      cmdUploadDoc.Parameters.Add("@Title ",SqlDbType.VarChar,200);
      cmdUploadDoc.Parameters.Add("@Doc",SqlDbType.Image);
      cmdUploadDoc.Parameters.Add("@DocType",SqlDbType.VarChar,4);
      cmdUploadDoc.Parameters[0].Value = txtTitle.Text;
      cmdUploadDoc.Parameters[1].Value = Docbuffer ;
      cmdUploadDoc.Parameters[2].Value = strDocType;
      BooksConn.Open();
      cmdUploadDoc.ExecuteNonQuery();
      BooksConn.Close();
      }
      }  
    }  
    学习中,希望大家指点!