如何使用C#将数据插入本地数据库

时间:2019-01-20 14:50:15

标签: c# local-database

我正在使用C#上的本地数据库来进行我的第一个项目。我在互联网上搜索了用于插入数据的不同代码,但没有任何结果适合我。我正在尝试不同的代码,发生在我身上的问题是他们使用的内置函数未在我的代码中显示。有人可以共享用于在本地数据库中插入,检索和删除的真实代码吗?

我尝试过的最新代码,SqlCeConnection中发生了一些异常。

这是我的代码:

string str="Data Source=(localdb)shop_database;Initial Catalog=shop_database;Integrated Security=True";

SqlCeConnection con = new SqlCeConnection(str);          
SqlCeDataAdapter sda = new SqlCeDataAdapter();
SqlCeCommand cmd = con.CreateCommand();

cmd.CommandText = "Insert into Account_details (Account_No,Customer_name,Customer_father_name,Profession,Mobile_No,Office_Address,House_Address,CNIC,Item_name,Item_color,Item_model,Item_engine_NO,Item_chasis_NO,Cash_price,Installment_price,Advance_given,Amount_left,Monthly_Installment,Monthly_Rent,Date_of_giving,Sponsor_name,Sponsor_father_name,Sponsor_profession,Sponsor_Address,Sponsor_CNIC,Sponsor_Mobile_No) values (@Account_No,@Customer_name,@Customer_father_name,@Profession,@Mobile_No,@Office_Address,@House_Address,@CNIC,@Item_name,@Item_color,@Item_model,@Item_engine_NO,@Item_chasis_NO,@Cash_price,@Installment_price,@Advance_given,@Amount_left,@Monthly_Installment,@Monthly_Rent,@Date_of_giving,@Sponsor_name,@Sponsor_father_name,@Sponsor_profession,@Sponsor_Address,@Sponsor_CNIC,@Sponsor_Mobile_No)";

cmd.Parameters.AddWithValue("@Account_No", this.Textbox0.Text);
cmd.Parameters.AddWithValue("@Customer_name", this.Textbox1.Text);
cmd.Parameters.AddWithValue("@Customer_father_name", this.Textbox2.Text);
cmd.Parameters.AddWithValue("@Profession", this.Textbox3.Text);
cmd.Parameters.AddWithValue("@Mobile_No", this.Textbox4.Text);
cmd.Parameters.AddWithValue("@Office_Address", this.Textbox5.Text);
cmd.Parameters.AddWithValue("@House_Address", this.Textbox6.Text);
cmd.Parameters.AddWithValue("@CNIC", this.Textbox7.Text);
cmd.Parameters.AddWithValue("@Item_name", this.Textbox14.Text);
cmd.Parameters.AddWithValue("@Item_color", this.Textbox15.Text);
cmd.Parameters.AddWithValue("@Item_model", this.Textbox16.Text);
cmd.Parameters.AddWithValue("@Item_engine_NO", this.Textbox17.Text);
cmd.Parameters.AddWithValue("@Item_chasis_NO", this.Textbox18.Text);
cmd.Parameters.AddWithValue("@Cash_price", this.Textbox19.Text);
cmd.Parameters.AddWithValue("@Installment_price", this.Textbox20.Text);
cmd.Parameters.AddWithValue("@Advance_given", this.Textbox21.Text);
cmd.Parameters.AddWithValue("@Amount_left", this.Textbox25.Text);
cmd.Parameters.AddWithValue("@Monthly_Installment", this.Textbox22.Text);
cmd.Parameters.AddWithValue("@Monthly_Rent", this.Textbox23.Text);
cmd.Parameters.AddWithValue("@Date_of_giving", this.Textbox24.Text);
cmd.Parameters.AddWithValue("@Sponsor_name", this.Textbox8.Text);
cmd.Parameters.AddWithValue("@Sponsor_father_name", this.Textbox9.Text);
cmd.Parameters.AddWithValue("@Sponsor_profession", this.Textbox10.Text);
cmd.Parameters.AddWithValue("@Sponsor_Address", this.Textbox11.Text);
cmd.Parameters.AddWithValue("@Sponsor_CNIC", this.Textbox12.Text);
cmd.Parameters.AddWithValue("@Sponsor_Mobile_No", this.Textbox13.Text);

try
{
    cmd.ExecuteNonQuery();
    MessageBox.Show("Successfully saved");
}
catch (Exception ex)
{
    MessageBox.Show(ex.Message);
}

2 个答案:

答案 0 :(得分:0)

要编辑,插入(通常与您的数据库进行交互),您需要SqlCommand类。首先,使用SqlConnection对象创建与数据库的连接。然后,您将SQL语句作为字符串传递,并将连接传递到SqlConnection类的构造函数中。小例子:

SqlConnection con = new SqlConnection("server=localhost;database=test_db;uid=root;password=yourpassword");
SqlCommand cmd = new SqlCommand("select * from your_table", con);

要从数据库检索数据,您需要使用SQL语句。例如,SQL语句类似于:

insert into my_table (value1, value2)
values("Example", "Insertion");

创建SqlConnection和SqlCommand时,需要打开数据库连接并执行命令。它是用于从数据库接收信息或使用ExecuteReader()或ExecuteNonQuery()编辑数据库的命令。例如,当您要接收存储在一个表中的所有信息时,可以使用:

SqlConnection con = new SqlConnection("connection string as shown above");
SqlCommand cmd = new SqlCommand("select * from example_table", con);
con.Open();
SqlDataReader reader = cmd.ExecuteReader();
while(reader.Read())
    Console.WriteLine(reader[<table_index or attribute Name>]);

最后不要忘记在SqlConnection和SqlDataReader对象上调用close方法

答案 1 :(得分:0)

您可能犯了两个错误:

问题1.您的连接字符串看起来像是错误的。代替:

Data Source=(localdb)shop_database;Initial Catalog=shop_database;Integrated Security=True";

应该是:

Data Source=(LocalDb)\MSSQLLocalDB;Initial Catalog=shop_database;Integrated Security=True";

问题2。在执行命令之前,您没有打开连接。您在代码块中的代码应如下所示:

try
{
    conn.Open(); // Open the connection
    cmd.ExecuteNonQuery();
    MessageBox.Show("Successfully saved");
}
catch (Exception ex)
{
    MessageBox.Show(ex.Message);
}
finally
{
    conn.Close(); // Close the connection
}

作为最佳实践,我建议您使用“ 使用”块创建连接。在这种情况下,您不必显式关闭连接并将其设置为null:

try
{
    using (SqlConnection connection = new SqlConnection(connectionString))
    {
        conn.Open();
        // Remaining code
    }
}
catch(Exception ex)
{
    // Manage your exception here
}