我在我的应用程序中收到一个错误,我不知道如何解决它。这是代码:
SqlConnection myConnection = new SqlConnection(ConfigurationManager.ConnectionStrings["DBConnection"].ConnectionString);
myConnection.Open();
SqlCommand cmd = new SqlCommand("SELECT ServerIP FROM Servers", myConnection);
SqlDataReader rdr = cmd.ExecuteReader();
if (rdr.HasRows)
{
while (rdr.Read())
{
string serverIP = rdr["ServerIP"].ToString();
ScheduledTasks st = new ScheduledTasks(@"\\" + serverIP);
string[] taskNames = st.GetTaskNames();
foreach (string name in taskNames)
{
Task t = st.OpenTask(name);
var status = t.Status;
var recentRun = t.MostRecentRunTime;
var nextRun = t.NextRunTime;
var appName = t.ApplicationName;
SqlConnection myConnection2 = new SqlConnection(ConfigurationManager.ConnectionStrings["DBConnection"].ConnectionString);
SqlCommand myCommand2 = new SqlCommand("sp_AddScheduledTasks", myConnection2);
try
{
myConnection2.Open();
myCommand2.CommandType = CommandType.StoredProcedure;
myCommand2.Parameters.Add("@ID", SqlDbType.Int);
myCommand2.Parameters["@ID"].Direction = ParameterDirection.Output;
myCommand2.Parameters.Add("@ServerIP", SqlDbType.NVarChar, 20).Value = serverIP;
myCommand2.Parameters.Add("@TaskName", SqlDbType.NVarChar, 50).Value = t;
myCommand2.Parameters.Add("@MostRecentRun", SqlDbType.DateTime).Value = recentRun;
myCommand2.Parameters.Add("@NextRunTime", SqlDbType.DateTime).Value = nextRun;
myCommand2.Parameters.Add("@AppName", SqlDbType.NVarChar, 50).Value = appName;
myCommand2.Parameters.Add("@Status", SqlDbType.NVarChar, 50).Value = status;
int rows = myCommand2.ExecuteNonQuery();
}
finally
{
myConnection2.Close();
}
我收到的错误是与ExecuteNonQuery
。它说
InvalidCastException无法将参数值从任务转换为字符串。
我认为这与我尝试放置位置有关(在if语句内部),但我不确定。任何帮助将非常感激。
谢谢,
马特
我的猜测是
myCommand2.Parameters.Add("@TaskName", SqlDbType.NVarChar, 50).Value = t;
t不是字符串吗?
问题内容: 我有一个表单,用户可以指定各种参数来挖掘某些数据(状态,日期等)。 我可以产生一个查询: 等等。每一个都是可选的(我可以选择带有的所有行,或者带有的所有行,或者带有etc的所有行)。 给定大量参数(全部为可选参数),组成动态存储过程的最佳方法是什么? 我正在处理各种数据库,例如:MySQL,Oracle和SQLServer。 问题答案: 实现此目的的最简单方法之一: 等等。这完全消除了
问题内容: 我正在使用Sql Server2008。我的存储过程接受将近150个参数。在性能方面有什么问题吗? 问题答案: 在性能上没有错,但是闻起来可以用动态SQL更好地完成。不看代码很难说。
问题内容: 我在sql server中创建了一个存储过程来馈送SSRS,以允许它接受多个值。我已经创建了它,当我在报表中使用它或在sql server中执行它时,出现以下错误消息。我有什么想念的吗?谢谢 这是我的示例数据。随时使用它创建表 这是我的动态存储过程代码 谢谢 错误的梅格 问题答案: 还有另一种方法可以做到这一点。为何不使用函数拆分参数,而不是将值传递给动态查询? 一旦选择了其中一个功能
问题内容: 我在Google上搜索并不断提出“不,这是不可能的”,但是这些帖子的发布日期为2005-2007,所以我想知道是否已更改。一个代码示例: 解决方案之一是传递null,然后检查null并设置变量。我不想这样做,也不必这样做。如果这是真的,那么MySql开发人员需要唤醒,因为我可以用MSSQL做更多的事情。 问题答案: 仍然不可能。
我正在开发一个框架,其中我是一个使用动态创建的参数调用存储过程。我正在运行时构建参数集合。 当我将参数传递给存储过程时,会出现此问题,但存储过程不接受此类参数。 例如,我的存储过程是: 调用存储过程: 这会引发以下错误: 这在 Sybase ASE 中工作正常,它只是忽略任何其他参数。这可以通过MSSQL服务器2008实现吗?任何帮助,非常感谢。谢谢
我对C#相当陌生,我正在尝试设置对数据库中一个存储过程的调用,该过程只接受一个参数。 我得到错误“过程或函数'SP_getName'需要参数'@username',但未提供该参数。” 当我向存储过程提供参数并通过SQL management studio运行它时,它工作正常。 然而,当我尝试调用它时,错误在于我如何传递参数,但我无法发现问题是什么。 如果您能帮我发现错误,我们将不胜感激! 我也试过