【发布时间】:2011-12-21 10:59:53
【问题描述】:
我正在尝试运行我认为是相当简单的参数化插入查询,但遇到了各种各样的问题。 SQL EXPRESS 08R2, VB.net
这是构建参数的 VB 代码... 更新变量名称:
itemDataSource1.ConnectionString = ConfigurationManager.ConnectionStrings("MyConnectionString").ToString()
itemDataSource1.InsertCommandType = SqlDataSourceCommandType.StoredProcedure
itemDataSource1.InsertParameters.Add("@short_Text", short_Text)
itemDataSource1.InsertParameters.Add("@foreignTable", foreignTable)
itemDataSource1.InsertCommand = "usp_insertLangShortText" ' Call stored procedure
'***********************************************************************
' Begin the insertion. Check for errors during insert process.
Dim rowsAffected As Integer = 0
rowsAffected = itemDataSource1.Insert()
这是我尝试执行插入的 SP..
@short_Text varchar(250),
@foreignTable varchar(250)
AS
/* SET NOCOUNT ON */
DECLARE @sql varchar(max);
BEGIN
SET @sql = 'INSERT INTO ' + @foreignTable + ' (short_Text) VALUES (''' + @short_Text + ''')';
END
print (@sql)
EXECUTE(@sql);
SET @sql = ''
RETURN
欢迎任何关于如何更智能地编码的建议。
这是错误.... System.Data.SqlClient.SqlException:过程或函数 usp_insertLangShortText 指定的参数过多。在 System.Data.SqlClient.SqlConnection.OnError(SqlException 异常,Boolean breakConnection) 在 System.Data.SqlClient.SqlInternalConnection.OnError(SqlException 异常,Boolean breakConnection) 在 System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj) 在 System .Data.SqlClient.TdsParser.Run(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj) 在 System.Data.SqlClient.SqlCommand.FinishExecuteReader(SqlDataReader ds, RunBehavior runBehavior, String resetOptionsString) 在 System.Data.SqlClient .SqlCommand.RunExecuteReaderTds(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, Boolean async) 在 System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method, DbAsyncResult result) 在 System.Data.SqlClient。 SqlCommand.InternalExecuteNonQuery(DbAsyncResult 结果,Str ing methodName, Boolean sendToPipe) at System.Data.SqlClient.SqlCommand.ExecuteNonQuery() at System.Web.UI.WebControls.SqlDataSourceView.ExecuteDbCommand(DbCommand command, DataSourceOperation operation) at System.Web.UI.WebControls.SqlDataSourceView.ExecuteInsert( IDictionary values) at System.Web.UI.WebControls.SqlDataSource.Insert() at par_importExcelDataPTS.GetRootID(String short_Text, Int32 string_id, String dbName, String Lang_code) in C:\Users
【问题讨论】: