我有一个运行存储过程的C#程序。如果我从Microsoftsqlservermanagementstudio运行存储过程,它工作正常。执行大约需要30秒。但是,如果我尝试从C#程序运行相同的存储过程,它会超时,即使我已将连接字符串中的超时设置为10分钟。using(connection1=newSqlConnection("userid=user_id_goes_here;password=password_goes_here;initialcatalog=database_name_goes_here;datasource=server_name_goes_here;connecti
使用C#和System.Data.SqlClient,有没有办法在我实际执行之前检索属于SQLServer上存储过程的参数列表?我有一个“多环境”场景,其中存在同一数据库模式的多个版本。环境示例可能是“开发”、“登台”和“生产”。“开发”将有一个版本的存储过程,“登台”将有另一个版本。我想要做的就是在传递一个值并调用存储过程之前验证参数是否存在。避免SqlException而不是必须捕获它对我来说是一个加号。约书亚 最佳答案 你想要SqlCommandBuilder.DeriveParameters(SqlCommand)方法。请注
简而言之。我有两个简单的助手:privateSqlCommandCreateCommand(stringtext){SqlCommandcmd=newSqlCommand();cmd.Connection=connection;cmd.CommandType=CommandType.Text;cmd.CommandText=text;returncmd;}voidSetParameter(SqlCommandcmd,stringp,stringdbName){cmd.Parameters.Add(p,SqlDbType.NVarChar);cmd.Parameters[p].Value
在我的程序中,我需要使用if语句检查数据库中的记录是否已存在于表中。使用c#我正在尝试通过sql连接来执行此操作。因为我假设ExecuteNonQuery();命令返回一个整数值,如果我的假设是真的,我想知道什么值是真的知道表中是否存在某个记录。这是我的代码示例:using(SqlConnectionsqlConnection=dbUtil.GetSqlConnection(dbUtil.GetConnectionStringByName("NonConnectionString"))){using(SqlCommandsqlCommand=newSqlCommand("SELECT*
我在一个SqlCommand中对不同的查询进行批处理,当我达到2100个参数限制时停止查询批处理。如果我的批处理有2100或2099个参数,我仍然会遇到异常。即使参数数量少于2100,以下测试代码也会抛出“太多参数异常”。varparametersMax=2099;varconnection=newSqlConnection(@"DataSource=.;IntegratedSecurity=SSPI;");connection.Open();varenumerable=Enumerable.Range(0,parametersMax);varquery=string.Format("
您将如何指定:Decimal(18,2)在此:SqlComm.Parameters.Add("@myValue",SqlDbType.Decimal,0,"myValue");目前我已经从设计端属性定义了precision=2。我只是好奇如何从代码中实现这一点。谢谢 最佳答案 没有Add的重载可让您直接设置小数精度,因此您需要创建一个SQlParameter对象并将其添加到集合中:SqlParameterparam=newSqlParameter("@myValue",SqlDbType.Decimal);param.SourceC
我正在构建自定义数据库部署实用程序,我需要读取包含sql脚本的文本文件并针对数据库执行它们。非常简单的东西,到目前为止还不错。但是我遇到了一个障碍,文件的内容被成功且完整地读取,但是一旦传递到SqlCommand然后使用SqlCommand.ExecuteNonQuery执行,只有部分脚本被执行。我启动了Profiler并确认我的代码没有通过所有脚本。privatevoidExecuteScript(stringcmd,SqlConnectionsqlConn,SqlTransactiontrans){SqlCommandsqlCmd=newSqlCommand(cmd,sqlConn
我必须从SQLServer中的数据库中选择用户名。由SqlCommand在SQLServerManagementStudio中工作,但在我的代码中不工作。只有在输入就像AFFAQPC/affaq包含/.代码是:publicint?getid(){SqlConnectionDb=newSqlConnection(ConfigurationManager.ConnectionStrings["DefaultConnection"].ConnectionString);Db.Open();//SearchingforidinUserstablefromtheloggedinusernameSqlCo
我在WindowsXP上使用Java,并希望能够向另一个程序(如telnet)发送命令。我不想简单地执行另一个程序。我想执行它,然后在它运行后向它发送一系列命令。这是我想做的代码,但它不起作用:(如果您取消注释并将命令更改为“cmd”,它会按预期工作。请帮忙。)这是一个简化的例子。在生产环境中,将发送更多命令,因此请不要建议调用“telnetlocalhost”。try{Runtimert=Runtime.getRuntime();Stringcommand="telnet";//command="cmd";Processpr=rt.exec(command);BufferedRead
以下是我在iOSxamarin应用程序中使用的一些数据访问代码的简化表示:publicasyncTask>GetAllFoos(){varfoos=newList();using(CommandWrappercommand=GetCommandWrapper("SELECTId,Name,RankFROMFoos"))//thiscreatesSqliteCommandobjectandputsitinwrapperobject{using(ReaderWrapperreader=ExecuteReaderAsync(_Connection,command)){while(reader