Не удается преобразовать из String в системе.Ио.трансляция
В строке 366 я получаю ошибку не удается преобразовать строку в System.IO.Stream.
а в строке 383 я получаю streamwriter, который не содержит определения close.
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using MySql.Data.MySqlClient; using System.Diagnostics; using System.IO; namespace connect { class DBConnect { private MySqlConnection connection; private string server; private string database; private string uid; private string password; //Constructor public DBConnect() { Initialize(); } //Initialize values private void Initialize() { server = "localhost"; database = "first_db"; uid = "root"; password = ""; string connectionString; connectionString = "SERVER=" + server + ";" + "DATABASE=" + database + ";" + "UID=" + uid + ";" + "PASSWORD=" + password + ";"; connection = new MySqlConnection(connectionString); this.display(); } // displays the database public void display() { // a is the number of rows int a = -1; a = this.Countrows(); //Console.WriteLine(a); // b is the number of columns int b = this.Countcolumns(); //Console.WriteLine(b); //create a new list with 3 columns , b = 3; b is the number of columns List<string>[] newlist = new List<string>[b]; // this.Select() fetches the dataset, set it to equal to newlist newlist = this.Select(); Console.WriteLine("Id" + " " + "username" + " " + "password"); for (int j = 0; j < a; j++) // iterate through each row; a is total number of rows { for (int i = 0; i < b; i++) // ITERATE THROUGH EACH COLUMN ; b is total number of columns { Console.Write(newlist[i][j] + " "); } // for each row of obsv..write a new line Console.WriteLine(); } } //open connection to database public bool OpenConnection() { try { connection.Open(); Console.WriteLine("connection opened"); return true; } catch (MySqlException ex) { //When handling errors, you can your application's response based //on the error number. //The two most common error numbers when connecting are as follows: //0: Cannot connect to server. //1045: Invalid user name and/or password. switch (ex.Number) { case 0: Console.WriteLine("Cannot connect to server. Contact administrator"); break; case 1045: Console.WriteLine("Invalid username/password, please try again"); break; } return false; } } //Close connection public bool CloseConnection() { try { connection.Close(); Console.WriteLine("connection closed"); return true; } catch (MySqlException ex) { Console.WriteLine(ex.Message); return false; } } //Insert statement public void Insert() { string query = "INSERT INTO users (id, username, password) VALUES('23' ,'Jojo', '33') , ('99', 'jen', '66')"; //open connection if (this.OpenConnection() == true) { //create command and assign the query and connection from the constructor MySqlCommand cmd = new MySqlCommand(query, connection); Console.WriteLine("values inserted"); //Execute command cmd.ExecuteNonQuery(); //close connection this.CloseConnection(); } } //Update statement public void Update() { string query = "UPDATE users SET username='Joe', password='22', id='33' WHERE username='Joe'"; //Open connection if (OpenConnection() == true) { //create mysql command MySqlCommand cmd = new MySqlCommand(); //Assign the query using CommandText cmd.CommandText = query; //Assign the connection using Connection cmd.Connection = connection; //Execute query cmd.ExecuteNonQuery(); //close connection this.CloseConnection(); } } //Delete statement public void Delete() { string query = "DELETE FROM users WHERE username='Joe'"; if (this.OpenConnection() == true) { MySqlCommand cmd = new MySqlCommand(query, connection); cmd.ExecuteNonQuery(); this.CloseConnection(); } } //Select statement public List<string>[] Select() { string query = "SELECT * FROM users"; //Create a list of 3 elements to store the result List<string>[] list = new List<string>[3]; // each element of list is a new list of strings list[0] = new List<string>(); list[1] = new List<string>(); list[2] = new List<string>(); //Open connection, running OpenConnection() will open the connection if (this.OpenConnection() == true) { //Create Command MySqlCommand cmd = new MySqlCommand(query, connection); //Create a data reader and Execute the command MySqlDataReader dataReader = cmd.ExecuteReader(); //Read the data and store them in the list // iterate through each row... dataReader.Read will get the data for each row... while (dataReader.Read()) { // iterate through each column, add the id , username, password list[0] is column1 which is id, list[1] IS COLUMN2 WHICH IS USERNAME... list[0][0] element column 1 , row 1 list[0].Add(dataReader["id"] + ""); list[1].Add(dataReader["username"] + ""); list[2].Add(dataReader["password"] + ""); } //close Data Reader dataReader.Close(); //close Connection this.CloseConnection(); //return list to be displayed return list; } else { return list; } } //Count statement public int Countrows() { string query = "SELECT Count(*) FROM users"; int Count = -1; //Open Connection if (this.OpenConnection() == true) { //Create Mysql Command MySqlCommand cmd = new MySqlCommand(query, connection); //ExecuteScalar will return one value Count = int.Parse(cmd.ExecuteScalar() + ""); //close Connection this.CloseConnection(); return Count; } else { return Count; } } public int Countcolumns() { string query = "SELECT Count(*) FROM INFORMATION_SCHEMA.COLUMNS WHERE table_schema = 'first_db' AND table_name = 'users'"; int Count = -1; //Open Connection if (this.OpenConnection() == true) { //Create Mysql Command MySqlCommand cmd = new MySqlCommand(query, connection); //ExecuteScalar will return one value Count = int.Parse(cmd.ExecuteScalar() + ""); //close Connection this.CloseConnection(); return Count; } else { return Count; } } //Backup public void Backup() { try { DateTime Time = DateTime.Now; int year = Time.Year; int month = Time.Month; int day = Time.Day; int hour = Time.Hour; int minute = Time.Minute; int second = Time.Second; int millisecond = Time.Millisecond; //Save file to C:\ with the current date as a filename string path; path = "C:\\MySqlBackup" + year + "-" + month + "-" + day + "-" + hour + "-" + minute + "-" + second + "-" + millisecond + ".sql"; StreamWriter file = new StreamWriter(path); ProcessStartInfo psi = new ProcessStartInfo(); psi.FileName = "mysqldump"; psi.RedirectStandardInput = false; psi.RedirectStandardOutput = true; psi.Arguments = string.Format(@"-u{0} -p{1} -h{2} {3}", uid, password, server, database); psi.UseShellExecute = false; Process process = Process.Start(psi); string output; output = process.StandardOutput.ReadToEnd(); file.WriteLine(output); process.WaitForExit(); file.Close(); process.Close(); } catch (IOException ex) { Console.WriteLine("Error , unable to backup!"); Console.WriteLine("ex.message"); } } /* //Restore public void Restore() { } * */ } }
Что я уже пробовал:
Я не знаю, что сюда положить. это просто ошибка, о которой я понятия не имею. поскольку я совершенно новичок в C#, я прошу вашего понимания здесь.
Graeme_Grant
Вы же знаете, что нет номеров строк, верно? Существует также слишком много кода, не связанного с этой проблемой. Пожалуйста, обновите вопрос только с извлеченной соответствующей информацией...
CPallini
Ваш код выглядит правильно. Не могли бы Вы отметить оскорбительные строки?
CHill60
В чем заключается содержание path
?