未能找到存储过程 '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的连接
代码如下:
//先将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的连接
解决方案 »
- 附件 下载问题 半天没搞好
- vs 版本的问题
- ASP.net 怎么获取字符串
- 怎么造就一个C#程序员《高分》《大牛多说话》
- 这样写法正常吗??
- 求一段当前位置插入的js代码 急啊 !!!!! 赠送100分
- ASP.NET C# 导出Excel错位
- ■■■里面这段代码那里有问题?(帮忙看一下啊)在线等.......
- 提示Insert语句错误,应该怎么改?
- 由于标题太长!我想取前8个字符用什么函数<%# DataBinder.Eval(Container.DataItem,"Title")%>
- ...............................处理DataTable的一个问题.........................................
- 求助:excel导入到sql server中代码出错,原代码详细,请高手进入
+ " values ( @phoneNo, @DocumentsID, @DocumentsType) ";
前缀para...呢
将这一句话改成cmd.CommandType =CommandType.Text;
因为你根本就没有用到存储过程啊,所以就不能用哪个属性啊!