Я пытался вставить значения в файл базы данных сервера в Database.mdf
SQL с помощью DataGridView из нескольких текстовых полей перед загрузкой их в диаграмме, но сначала он возвращается сообщение об ошибке:Вставка значения в Database.mdf C#
System.Data.SqlClient.SqlCommand' does not contain a definition for 'Open' and no extension method 'Open' accepting a first argument of type 'System.Data.SqlClient.SqlCommand' could be found (are you missing a using directive or an assembly reference?) C:\Users\DELL\Documents\Visual Studio 2012\Projects\WindowsFormsApplication6\WindowsFormsApplication6\Form1.cs 65 44 WindowsFormsApplication6
Но тогда эта ошибка исчезла (без меня меняла какой-либо код, но просто перекомпилировала его), и теперь эта функция (то есть sendrow()
) бесполезна, ничего не делая абсолютно ничего, даже не давая ошибки. Я полагаю, что если ему удастся записать его в базу данных, я мог бы увидеть его на datagridView в форме.
SqlConnectionStringBuilder csb = new SqlConnectionStringBuilder();
csb.ConnectionString = @"Data Source=(LocalDB)\v11.0;AttachDbFilename=C:\Users\DELL\Documents\Visual Studio 2012\Projects\WindowsFormsApplication6\WindowsFormsApplication6\Database1.mdf;Integrated Security=True";
using (SqlConnection conn = new SqlConnection(csb.ConnectionString))
{
conn.Open();
using (SqlCommand cmd = new SqlCommand("INSERT INTO Stocks (Open, High, Low, Close, Day) VALUES (@Open, @High, @Low, @Close, @Day)"))
{
cmd.CommandType = CommandType.Text;
cmd.Connection = conn;
// cmd.Parameters.Add(new SqlParameter("@Open", SqlDbType.VarChar, 40)); //using this way "The variable name '@Open' has already been declared. Variable names must be unique within a query batch or stored procedure."
// cmd.Parameters.AddWithValue("@Open", textBox13.Text);
cmd.Parameters.AddWithValue("@Open", textBox13.Text);
cmd.Parameters.AddWithValue("@High", textBox14.Text);
cmd.Parameters.AddWithValue("@Low", textBox15.Text);
cmd.Parameters.AddWithValue("@Close", textBox16.Text);
cmd.ExecuteNonQuery(); // Incorrect syntax near the keyword 'Open'.
}
stocksTableAdapter.Update(database.Stocks); //LINE***added later but still getting "Incorrect syntax near the keyword 'Open'."
}
В базе данных, таблица добавлено называется Stocks
, с 5 столбцов (Id, Open, High, Low, Close
). Я прошу прощения, если я пропущу что-то очевидное, так как я довольно новичок в SQL Server. База данных создается как база данных услуг на базе и нет никакого значения, учитывая, кроме создания Open, High, Low, Close, Day
столбцов и определение их вклада в Decimal(18,4)
для Open, High, Low, Close
и Datetime
для Day
(но это не дело какое-либо значение в коде еще)
Если вы проверяете его, глядя на ваш DataGridView, то я думаю, то это, вероятно, в базе данных, но есть ошибка в вашем DataGridView. –
Вы можете напрямую проверить содержимое таблицы, чтобы увидеть, работает ли вставка? – Searching
Я привязал таблицу database.stocks из верхних правых задач datagridview. Я взял его из кода, где его дизайн принимает вход в datagridview при его запуске, а затем сохраняет его в базе данных. – bergdi