Я получаю ошибку в моем приложении и не могу понять, как ее исправить. Вот код:
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 Failed to
Я получаю ошибку в моем приложении и не могу понять, как ее исправить. Вот код:
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 не удалось
Я получаю ошибку в моем приложении и не могу понять, как ее исправить. Вот код:
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 не удалось преобразовать значение параметра из Задачи в a String.
Я думал, что это как-то связано с тем, где я поместил попытку (внутри оператора if), но я не уверен. Любая помощь будет принята с благодарностью.
Спасибо,
Мэтт