Я хочу вставить данные в базу данных SQL Server с помощью C#.Я хочу вставить данные в базу данных SQL Server с помощью C#
В моем коде не найдено ошибок. Но после ввода данных я пересекаю. Он показывает мне данные. Но когда я открываю таблицу базы данных. Я не вижу вставленные данные. Я инициализирую таблицу во время создания двумя строками. Но когда я пересекаю форму, я не вижу этих строк.
После стольких пробных ошибок. Я вижу, что соединение с базой данных ломается всякий раз, когда я запускаю его. Я увидел, что после нажатия F5 «зеленый плагин» на значке базы данных перешел на «красный крест». Это причина? Если это то, что должно быть решением?
Ребята, пожалуйста, помогите мне. Я новичок в C#.
Это insert.cs
:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace employeDB1
{
public partial class Insert : Form
{
public Insert()
{
InitializeComponent();
}
DatabaseConnection objConnect;
string conString;
int inc ;
int MaxRows;
DataSet ds = new DataSet();
DataRow dRow;
public void Insert_Load(object sender, EventArgs e)
{
try
{
objConnect = new DatabaseConnection();
conString = Properties.Settings.Default.EmployeeConnectionString;
objConnect.connection_string = conString;
objConnect.Sql = Properties.Settings.Default.SQL;
ds = objConnect.GetConnection;
MaxRows = ds.Tables[0].Rows.Count;
inc = MaxRows - 1;
//NavigateRecords();
}
catch (Exception err)
{
MessageBox.Show(err.Message);
}
}
private void button1_Click(object sender, EventArgs e)
{
DataRow row = ds.Tables[0].NewRow();
row[0] = int.Parse(textBox1.Text);
row[1] = textBox2.Text;
row[2] = textBox3.Text;
row[3] = int.Parse(textBox4.Text);
ds.Tables[0].Rows.Add(row);
try
{
objConnect.UpdateDatabase(ds);
MaxRows = MaxRows + 1;
inc = MaxRows - 1;
MessageBox.Show("RECORD INSERTED");
}
catch(Exception err)
{
MessageBox.Show(err.Message);
}
}
private void NavigateRecords()
{
dRow = ds.Tables[0].Rows[inc];
textBox1.Text = dRow.ItemArray.GetValue(0).ToString();
textBox2.Text = dRow.ItemArray.GetValue(1).ToString();
textBox3.Text = dRow.ItemArray.GetValue(2).ToString();
textBox4.Text = dRow.ItemArray.GetValue(3).ToString();
}
private void button2_Click(object sender, EventArgs e)
{
if (inc>0)
{
inc--;
NavigateRecords();
}
else
{
MessageBox.Show("First Record");
}
}
}
}
Это класс подключения к базе данных:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace employeDB1
{
class DatabaseConnection
{
private string sql_string;
private string strCon;
System.Data.SqlClient.SqlDataAdapter da_1;
public string Sql
{
set { sql_string = value; }
}
public string connection_string
{
set { strCon = value; }
}
public System.Data.DataSet GetConnection
{
get { return MyDataSet(); }
}
private System.Data.DataSet MyDataSet()
{
System.Data.SqlClient.SqlConnection con = new System.Data.SqlClient.SqlConnection(strCon);
con.Open();
da_1 = new System.Data.SqlClient.SqlDataAdapter(sql_string, con);
System.Data.DataSet dat_set = new System.Data.DataSet();
da_1.Fill(dat_set, "Table_Data_1");
con.Close();
return dat_set;
}
public void UpdateDatabase(System.Data.DataSet ds)
{
System.Data.SqlClient.SqlCommandBuilder cb = new System.Data.SqlClient.SqlCommandBuilder(da_1);
cb.DataAdapter.Update(ds.Tables[0]);
}
}
Оберните C# в Try/поймать блока и проверить исключение. Это должно дать вам больше информации. – Seano666
Скорее всего, вы смотрите не в том месте или в неподходящее время для данных. Предполагается, что вы вызываете «Обновить» на адаптере данных или ExecuteNonQuery в команде для изменения базы данных. В этом случае возможны три варианта: изменения сохраняются, и метод возвращает ненулевое значение, никаких изменений не сохраняют, а метод возвращает ноль или генерируется исключение. Вы говорите, что ошибок нет, поэтому он должен быть одним из первых двух. Что он? Кроме того, вы подключаетесь к базе данных на сервере или локальному файлу данных? Я предполагаю, что это последнее. – jmcilhinney
, пожалуйста, напишите свой код доступа к данным –