Sql вставить c# windows формы - PullRequest
0 голосов
/ 10 июля 2020

Я работаю над проектом формы windows с базой данных sql. Я хочу записать некоторые данные, но не смог. (код не выдает ошибок, однако данные не записываются. Код ниже - это место, куда я хочу записать данные:

 public static string stringConnection = @"Data Source=(localdb)\MSSQLLocalDB; AttachDbFilename=|DataDirectory|\POS.mdf; Integrated Security=True";
                    try
                    {
                        mySql = string.Empty;
                        mySql += "INSERT INTO Journal (Date) VALUES (" + "'"+ caisse + "'"+")" ;
                        connection.exsql(mySql);
                    }
                    catch(Exception exx)
                    {
                        MessageBox.Show(exx.ToString());
                    }

, а вот метод connection.ex sql:

public static void exsql(string sql)
    {
        SqlConnection connection = new SqlConnection();
        SqlDataAdapter adapter = default(SqlDataAdapter);
        try
        {
            connection.ConnectionString = stringConnection;
            connection.Open();
            adapter = new SqlDataAdapter(sql, connection);
            connection.Close();
            //connection = null;
        }
        catch (Exception ex)
        {
            MessageBox.Show("Fatal sql error: " + ex.Message, "Sql Server connection failed", MessageBoxButtons.OK, MessageBoxIcon.Error);
        }
    }

Ответы [ 3 ]

2 голосов
/ 10 июля 2020

Вы хотите использовать sqlCommand и выполнить .ExecuteNonQuery() для выполнения INSERT или UPDATE.

Дополнительная информация здесь .

Также используйте параметризацию ( пример показан по ссылке выше), в противном случае вы откроете себя до SQL инъекции , и ваш код завершится ошибкой, если ваша переменная содержит одинарную кавычку.

0 голосов
/ 10 июля 2020

Без кода

    private bool exsql(string query)
    { 
        using(var conn = new SqlConnection(ConnectionString.path))
        {
            conn.Open();
            using (var command = new SqlCommand(query, conn)) 
                return command.ExecuteNonQuery() == 0 ? false : true;  
        }
    }
0 голосов
/ 10 июля 2020
SqlConnection con;
    SqlCommand cmd;
    public bool exsql(string query)
    {       
       try {
            con = null;
            con = new SqlConnection(ConnectionString.path);
            cmd = new SqlCommand(query, con);
            con.Open();
            var rowEffected = cmd.ExecuteNonQuery();
            con.Close();
            if(rowEffected>0)
            {
                return true;
            }
            else
            {
                return false;
            }
            }
       catch (Exception ex)
       {
           MessageBox.Show(ex.Message, "Exception occurred !", 
           MessageBoxButtons.OK, 
           MessageBoxIcon.Error);
       }
    }

Вы можете выполнить свой запрос с помощью функции ExecuteNonQuery ()

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...