我是c#和.net的新手,所以我將數據插入到數據庫中。連接到SQL Server並插入值
首先我創建了一個新項目 - asp.net web應用程序(v4.6.1)。然後我選擇了網頁表單模板。
我web.config
文件自動添加此行
<connectionStrings>
<add name="DefaultConnection"
connectionString="Data Source=(LocalDb)\MSSQLLocalDB;AttachDbFilename=|DataDirectory|\aspnet-WebApplication7-20161108020707.mdf;Initial Catalog=aspnet-WebApplication7-20161108020707;Integrated Security=True"
providerName="System.Data.SqlClient" />
</connectionStrings>
所以這是我的數據庫連接。
我啓動了Microsoft SQL Server Management Studio。在左側,我有對象瀏覽器,我看到我的服務器(我的電腦 - 我使用Windows身份驗證)。有稱爲數據庫的文件夾。我右鍵單擊它並選擇新的數據庫...我創建了一個名爲test的新數據庫。然後,我擴展了測試數據庫並右鍵單擊表格文件夾並選擇了new-> table。我添加了2列。 id(int) - 非空和名稱(nchar(255)) - 非空。我添加了ID列作爲身份。我保存了表並將其命名爲測試。
現在在Visual Studio中我創建了Default.aspx
頁面。
<%@ Page Title="Home Page" Language="C#" MasterPageFile="~/Site.Master" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="WebApplication7._Default" %>
<asp:Content ID="BodyContent" ContentPlaceHolderID="MainContent" runat="server">
<asp:TextBox ID="someBox" runat="server" placeholder="enter something"> </asp:TextBox>
<asp:Button ID="clickMe" runat="server" text="click" onclick=clickMe_click />
</asp:Content>
我加入Default.aspx.cs:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data.SqlClient;
using System.Configuration;
using System.Web.Configuration;
using System.Data;
namespace WebApplication7
{
public partial class _Default : Page
{
protected void clickMe_click(object sender, EventArgs e)
{
string txtBox = someBox.Text;
System.Data.SqlClient.SqlConnection sqlConnection1 =
new System.Data.SqlClient.SqlConnection("DefaultConnection");
System.Data.SqlClient.SqlCommand cmd = new System.Data.SqlClient.SqlCommand();
cmd.CommandType = System.Data.CommandType.Text;
cmd.CommandText = "INSERT testing (name) VALUES (txtBox)";
cmd.Connection = sqlConnection1;
sqlConnection1.Open();
cmd.ExecuteNonQuery();
sqlConnection1.Close();
}
}
}
我也試圖與該代碼中的點擊函數中:
SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["DefaultConnection"].ToString());
SqlCommand cmd = new SqlCommand();
cmd.CommandText = "INSERT INTO testing (name) VALUES (@name)";
cmd.Parameters.Add("@name", SqlDbType.NVarChar).Value = txtBox;
cmd.Connection = conn;
conn.Open();
cmd.ExecuteNonQuery();
conn.Close();
刷新頁面,當我刷新表到SQL Server Management Studio並進行查詢:
select * from testing;
GO
它返回0行受影響並顯示空表。
我在做什麼錯?
編輯:
<connectionStrings>
<add name="DefaultConnection" connectionString="Data Source=(LocalDb)\MSSQLLocalDB;AttachDbFilename=|DataDirectory|\aspnet-WebApplication3-20161105080932.mdf;Initial Catalog=aspnet-WebApplication3-20161105080932;Integrated Security=True"
providerName="System.Data.SqlClient" />
</connectionStrings>
ASPNET-WebApplication3-20161105080932是在服務器對象資源管理器中我的數據庫名稱。在數據庫裏我創建了表測試。
這裏是我的CS代碼:
protected void clickMe_click(object sender, EventArgs e)
{
string txtBox = someBox.Text;
using (SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["DefaultConnection"].ToString()))
{
string sql = "INSERT INTO testing (name) VALUES (@name)";
SqlCommand cmd = new SqlCommand(sql, conn);
cmd.Parameters.Add("name", SqlDbType.NVarChar).Value = txtBox;
int rowsAffected = cmd.ExecuteNonQuery();
conn.Close();
}
}
但沒有任何反應。
@不幸的是,他已經在做這件事了。查看發佈的代碼。 – Rahul
string txtBox = someBox.Text; 我在這裏得到它到字符串txtBox,所以我在代碼的其他部分使用txtBox。 – KondukterCRO