示例#1
0
        private void ExportSqlBtn_Click(object sender, EventArgs e)
        {
            if (TheSqliteAgent == null)
            {
                WriteLog("No SQLite Agent");
                return;
            }

            saveFileDialog1.DefaultExt = ".csv";
            DialogResult result = saveFileDialog1.ShowDialog();

            if (result != DialogResult.OK)
            {
                return;
            }

            var writer = new CSVFileOutputAgent(saveFileDialog1.FileName, false);

            WriteLog("Prepared output CSV file: " + saveFileDialog1.FileName);

            try
            {
                WriteLog("Querying sql: \n\r" + QuerySqlTextBox.Text);
                var reader = TheSqliteAgent.QueryResultRows(QuerySqlTextBox.Text);

                bool isFirstRow = true;

                while (reader.Read())
                {
                    if (isFirstRow)
                    {
                        List <string> headers = new List <string>();
                        for (int i = 0; i < reader.FieldCount; i++)
                        {
                            var header = reader.GetName(i);
                            headers.Add(header);
                        }
                        writer.WriteHeaderRow(headers);
                        isFirstRow = false;
                    }
                    List <string> oneRow = new List <string>();
                    for (int i = 0; i < reader.FieldCount; i++)
                    {
                        var    type = reader.GetDataTypeName(i).ToUpper();
                        string value;
                        switch (type)
                        {
                        case "INTEGER":
                            value = "" + reader.GetInt64(i);
                            break;

                        case "REAL":
                            value = "" + reader.GetDouble(i);
                            break;

                        case "TEXT":
                            value = reader.GetString(i);
                            break;

                        default:
                            value = "" + reader.GetValue(i);
                            break;
                        }
                        //WriteLog("Value: " + value, "DEBUG");

                        oneRow.Add(value);
                    }
                    //queryResultDataGridView.Rows.Add(oneRow.Values.ToArray<object>());
                    //allRows.Add(oneRow);

                    writer.WriteOneRowWithColumnIndex(oneRow);
                }

                writer.FinishWrite();
                WriteLog("Finished export!");
            }
            catch (Exception exception)
            {
                WriteLog("Exception: " + exception.Message, "ERROR");
                WriteLog("Stack: " + exception.StackTrace, "ERROR");
            }
        }
示例#2
0
        private void QuerySqlBtn_Click(object sender, EventArgs e)
        {
            if (TheSqliteAgent == null)
            {
                WriteLog("No SQLite Agent");
                return;
            }

            try
            {
                WriteLog("Querying sql: " + QuerySqlTextBox.Text);
                var reader = TheSqliteAgent.QueryResultRows(QuerySqlTextBox.Text);

                WriteLog("Rendering Query Result...");
                queryResultDataGridView.Rows.Clear();
                queryResultDataGridView.Columns.Clear();
                queryResultDataGridView.DataSource = null;
                //queryResultDataGridView.AutoGenerateColumns = true;

                //List<Dictionary<string, string>> allRows = new List<Dictionary<string, string>>();

                while (reader.Read())
                {
                    if (queryResultDataGridView.Columns.Count == 0)
                    {
                        for (int i = 0; i < reader.FieldCount; i++)
                        {
                            queryResultDataGridView.Columns.Add(reader.GetName(i), reader.GetName(i));
                        }
                    }

                    Dictionary <string, string> oneRow = new Dictionary <string, string>();
                    for (int i = 0; i < reader.FieldCount; i++)
                    {
                        /*
                         * WriteLog("Field: " + reader.GetName(i),"DEBUG");
                         * WriteLog("Type: " + reader.GetDataTypeName(i), "DEBUG");
                         * WriteLog("C#T: " + reader.GetFieldType(i), "DEBUG");
                         */
                        var    type = reader.GetDataTypeName(i).ToUpper();
                        string value;
                        switch (type)
                        {
                        case "INTEGER":
                            value = "" + reader.GetInt64(i);
                            break;

                        case "REAL":
                            value = "" + reader.GetDouble(i);
                            break;

                        case "TEXT":
                            value = reader.GetString(i);
                            break;

                        default:
                            value = "" + reader.GetValue(i);
                            break;
                        }
                        //WriteLog("Value: " + value, "DEBUG");

                        oneRow.Add(reader.GetName(i), value);
                    }
                    queryResultDataGridView.Rows.Add(oneRow.Values.ToArray <object>());
                    //allRows.Add(oneRow);
                }
                //queryResultDataGridView.DataSource = allRows;
            }
            catch (Exception exception)
            {
                WriteLog("Exception: " + exception.Message, "ERROR");
                WriteLog("Stack: " + exception.StackTrace, "ERROR");
            }
        }