Code: // compile: csc /target:exe /reference:"C:\Progra~2\MySql\MySQLC~1.4\Assemb~1\v4.0\MySQLD~2.dll" Function.cs using System; using System.Text; using MySql.Data.MySqlClient; using System.IO; using System.Xml;
namespace ConsoleApplication1 { class Program { private static string server; private static string database; private static string uid; private static string password; private static string monitorname; private static string function; private static bool bfunctionchanged = true; private static bool bmonitorfound = false; static int Main(string[] args) { MySqlTransaction tr = null; string connectionString; MySqlConnection conn = null; String command = "SELECT * FROM Monitors"; MySqlDataReader reader; string[] functions = new string[] { "None", "Monitor", "Modect", "Record", "Mocord", "Nodect"};
if(args.Length != 2) { Console.WriteLine("Program aborting, insufficient arguments on command line\n Example, how to use: {0} MonitorName Function", System.AppDomain.CurrentDomain.FriendlyName); return -1; } else { monitorname = args[0]; function = args[1]; }
string result = Array.Find(functions, delegate(string s) { return s == function; }); if (result == null) { Console.WriteLine("Program aborting, Function {0} is not a valid function (Function names are case sensitive)", function); return 0; } if (ReadXMLFile(ref server, ref database, ref uid, ref password, "ZMMysql.xml") == false) { Console.WriteLine("Error, Program aborting!!!"); return 1; } connectionString = "SERVER=" + server + ";" + "DATABASE=" + database + ";" + "UID=" + uid + ";" + "PASSWORD=" + password + ";";
MySqlConnection connection = new MySqlConnection(connectionString); MySqlCommand cmd = new MySqlCommand(command, connection); try { connection.Open(); cmd.ExecuteNonQuery(); reader = cmd.ExecuteReader(); cmd.CommandType = System.Data.CommandType.Text; while (reader.Read() != false) { if (monitorname == (string)reader["Name"]) { Console.WriteLine("Found camera {0}", reader["Name"]); bmonitorfound = true; if (function == (string)reader["Function"]) { Console.WriteLine("Camera {0} is already set to function {1}, program terminating, nothing more to do", reader["Name"], reader["Function"]); connection.Close(); return 0; } } } } catch (MySqlException MySqlError) { // Console.WriteLine(MySqlError.Message); Console.WriteLine("MySqlError Message: {0}", MySqlError.Message.ToString()); } connection.Close(); if(bmonitorfound == false) { Console.WriteLine("Camera {0} could not be found (be advised, names are case sensitive), program terminating", monitorname); return -1; } try { conn = new MySqlConnection(connectionString); conn.Open(); tr = conn.BeginTransaction(); MySqlCommand cmd1 = new MySqlCommand(); cmd1.Connection = conn; cmd1.Transaction = tr;
string formatString = String.Format("UPDATE Monitors SET Function='{0}' WHERE Name='{1}'" , function,monitorname); // cmd1.CommandText = "UPDATE Monitors SET Function='Record' WHERE Name='Front-Porch'"; cmd1.CommandText = formatString; cmd1.ExecuteNonQuery(); } catch (MySqlException ex) { try { tr.Rollback(); bfunctionchanged = false; } catch (MySqlException ex1) { Console.WriteLine("Error: {0}", ex1.ToString()); bfunctionchanged = false; } Console.WriteLine("Error: {0}", ex.ToString()); bfunctionchanged = false; } if(bfunctionchanged == true) Console.WriteLine("Camera: {0} successfully change to {1} function", monitorname, function); return 0; }
static bool ReadXMLFile(ref string IPAddress, ref string Database, ref string Userid, ref string Password, string XMLFileName) { bool bReturn = true; FileStream READER = null; try { READER = new FileStream(XMLFileName, FileMode.Open, FileAccess.Read, FileShare.ReadWrite); //Set up the filestream (READER) // System.Xml.XmlDocument myZMParms = new System.Xml.XmlDocument();// Set up the XmlDocument (myZMParms) // myZMParms.Load(READER); //Load the data from the file into the XmlDocument (myZMParms) // System.Xml.XmlNodeList NodeList = myZMParms.GetElementsByTagName("ZMParms"); // Create a list of the nodes in the xml file //
IPAddress = NodeList[0].FirstChild.ChildNodes[0].InnerText; // mySqlIPAddress // Database = NodeList[0].FirstChild.ChildNodes[1].InnerText; // database name // Userid = NodeList[0].FirstChild.ChildNodes[2].InnerText; // userid // Password = NodeList[0].FirstChild.ChildNodes[3].InnerText; // password // } catch (IOException ex) { Console.WriteLine(ex.ToString()); bReturn = false; } finally { if (READER != null) { READER.Close(); READER.Dispose(); } } return bReturn; } } }
|