[英]Using insert stored procedure with SQL Server
當我最初學習編程時,被告知有3種可能的結果。 有一個錯誤,它工作,或什么也沒發生。
目前,我遇到的問題是最后一個,沒有錯誤消息可供我提交。
這是windows窗體:
按鈕的代碼如下。
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;
using System.Data.Sql;
using System.Data.SqlClient;
namespace Basque
{
public partial class Form1 : Form
{
private String strFirstName;
private String strLastName;
public Form1()
{
InitializeComponent();
}
private void btnSave_Click(object sender, EventArgs e)
{
strFirstName = txtFirstName.Text;
strLastName = txtLastName.Text;
int tempNo;
AddNames(strFirstName, strLastName);
txtFirstName.Clear();
txtLastName.Clear();
}
private void btnExit_Click(object sender, EventArgs e)
{
this.Close();
this.Dispose();
}
public void AddNames(String strFirstName, String strLastName)
{
String connString = @"Data Source=(LocalDB)\MSSQLLocalDB;AttachDbFilename=|DataDirectory|\BasqueNames.mdf;Integrated Security=True";
SqlConnection oCON = new SqlConnection(connString);
oCON.Open();
SqlCommand oCMD = new SqlCommand();
oCMD.Connection = oCON;
oCMD.CommandType = CommandType.StoredProcedure;
oCMD.CommandText = "usp_BasqueNames_Insert";
oCMD.Parameters.AddWithValue("@First", strFirstName);
oCMD.Parameters.AddWithValue("@Last", strLastName);
oCMD.ExecuteNonQuery();
oCON.Close();
}
}
}
數據庫的模式如下
CREATE TABLE [dbo].[Names]
(
[Id] INT IDENTITY (1, 1) NOT NULL,
[FirstName] NCHAR (10) NULL,
[LastName] NCHAR (10) NULL,
PRIMARY KEY CLUSTERED ([Id] ASC)
);
並且存儲過程如下
CREATE PROCEDURE usp_BasqueNames_Insert
@First NCHAR(10),
@Last NCHAR(10)
AS
INSERT INTO Names(FirstName, LastName)
VALUES (@First, @Last)
RETURN @@identity
令我感到奇怪的一件事是,當我開始調試應用程序時,服務器資源管理器中的數據庫名稱立即有一個紅色的x。
你能試試嗎? 並且請確保您嘗試傳遞的值不超過10個字符,因為您的nchar僅為(10);
private void btnSave_Click(object sender, EventArgs e)
{
AddNames(txtFirstname.Text, txtLastName.Text);
txtFirstName.Clear();
txtLastName.Clear();
}
public void AddNames(string strFirstName, string strLastName)
{
String connString = @"Data Source=(LocalDB)\MSSQLLocalDB;AttachDbFilename=|DataDirectory|\BasqueNames.mdf;Integrated Security=True";
using(SqlConnection oCON = new SqlConnection(connString))
{
SqlCommand oCMD = new SqlCommand("usp_BasqueNames_Insert",oCon);
oCMD.CommandType = CommandType.StoredProcedure;
oCMD.Parameters.Add("@First", SqlDbType.Nchar).Value = strFirstName;
oCMD.Parameters.Add("@Last", SqlDbType.Nchar).Value = strLastName;
oCMD.ExecuteNonQuery();
}
}
感謝所有的建議和支持。
必須更改一件事,我必須安裝並連接到sql express。 我發現Visual Studio數據庫在Visual Studio中無法連接。
private void btnSave_Click(object sender, EventArgs e)
{
AddNames(txtFirstname.Text, txtLastName.Text);
txtFirstName.Clear();
txtLastName.Clear();
}
public void AddNames(string strFirstName, string strLastName)
{
String connString = @"Data Source=ERNIE\SQLEXPRESS;Initial Catalog=LeatherDress;Integrated Security=True;Connect Timeout=15;Encrypt=False;TrustServerCertificate=True;ApplicationIntent=ReadWrite;MultiSubnetFailover=False";
using(SqlConnection oCON = new SqlConnection(connString))
{
SqlCommand oCMD = new SqlCommand("usp_BasqueNames_Insert",oCon);
oCMD.CommandType = CommandType.StoredProcedure;
oCMD.Parameters.Add("@First", SqlDbType.Nchar).Value = strFirstName;
oCMD.Parameters.Add("@Last", SqlDbType.Nchar).Value = strLastName;
oCON.open();
oCMD.ExecuteNonQuery();
oCON.close();
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.