未能找到存储过程   'INSERT   INTO   EDIdata(phoneNo,DocumentsID,DocumentsType)   values   (   @phoneNo,   @DocumentsID,   @DocumentsType) '。   
代码如下: 
//先将EXCEL导入到数据库,一:先把EXCEL导入dateView,二:然后将dateView里的数据导入到数据库里面 
//EXCEL   的连接串 
string   sConnectionString   =   "Provider=Microsoft.Jet.OLEDB.4.0; "   + 
"Data   Source= "   +file1.PostedFile.FileName.ToString()   +   "; "   + 
"Extended   Properties=Excel   8.0; "; 
//建立EXCEL的连接 
OleDbConnection   objConn   =   new   OleDbConnection(sConnectionString); objConn.Open(); OleDbCommand   objCmdSelect   =new   OleDbCommand( "SELECT   *   FROM   [Sheet1$] ",   objConn); 
OleDbDataAdapter   objAdapter1   =   new   OleDbDataAdapter(); 
objAdapter1.SelectCommand   =   objCmdSelect; DataSet   objDataset1   =   new   DataSet(); objAdapter1.Fill(objDataset1,   "XLData ");   DataGrid1.DataSource   =   objDataset1.Tables[0].DefaultView;   //测试代码,用来测试是否能读出EXCEL上面的数据 
  DataGrid1.DataBind(); DataTable   dt   =   objDataset1.Tables[0]; 
DataView   myView   =   new   DataView(dt); //SQL   SERVER的数据库连接 
SqlConnection   conn; string   dns   =System.Configuration.ConfigurationSettings.AppSettings[ "SQLCONNECTIONSTRING "];//连接串 
conn=new   SqlConnection(dns); SqlCommand   cmd   =conn.CreateCommand(); 
cmd.CommandType   =CommandType.StoredProcedure; 
cmd.CommandText= "INSERT   INTO   EDIdata(phoneNo,DocumentsID,DocumentsType) "   
+   "   values   (   @phoneNo,   @DocumentsID,   @DocumentsType) ";   
int   count=0;//用来记录出错的条数 
foreach   (DataRowView   myDrv   in   myView) 

count++; 
//要关闭上一次的SQL   Server的连接 
if   (conn.State.ToString()!= "Closed ") 
conn.Close(); //每一次都要清空所有的CMD的参数 
cmd.Parameters.Clear(); //执行存储过程 
//首先获得参数   共   3个 
//@CardNo,@ToAddress,@CCAddress 
SqlParameter   paraphoneNo   =cmd.Parameters.Add( "@phoneNo ",SqlDbType.NVarChar); 
SqlParameter   paraDocumentsID   =cmd.Parameters.Add( "@DocumentsID ",SqlDbType.NVarChar); 
SqlParameter   paraDocumentsType   =cmd.Parameters.Add( "@DocumentsType ",SqlDbType.NVarChar); //表示是输出参数 
paraphoneNo.Direction   =   ParameterDirection.Input; 
paraDocumentsID.Direction   =   ParameterDirection.Input;   
paraDocumentsType.Direction   =   ParameterDirection.Input; 
//参数赋值 
paraphoneNo.Value   =   myDrv[0].ToString().Trim(); 
paraDocumentsID.Value   =   myDrv[1].ToString().Trim(); 
paraDocumentsType.Value   =   myDrv[2].ToString().Trim(); 
conn.Open(); 
cmd.ExecuteNonQuery();//写入SQL数据库 
} objConn.Close();//关闭EXCEL的连接   

解决方案 »

  1.   

    paraphoneNo几个参数 怎么到了INSERT       INTO       EDIdata(phoneNo,DocumentsID,DocumentsType)   "       
    +       "       values       (       @phoneNo,       @DocumentsID,       @DocumentsType)   ";       
    前缀para...呢
      

  2.   

    cmd.CommandType       =CommandType.StoredProcedure;   
    将这一句话改成cmd.CommandType       =CommandType.Text;
    因为你根本就没有用到存储过程啊,所以就不能用哪个属性啊!