我試圖簡單地將值插入SQL表中。數據庫中的ID不能是AUTO_INCREMENT,所以我使用MAX和+1。該代碼不僅不會生成新的ID,而且不會將任何東西插入表中。Visual C#SQL語句不會插入到數據庫中
即使在調試器沒有錯誤或警告,它只是沒有顯示在數據庫本身..
這裏是我的代碼:
using System;
using System.Collections.Generic;
using System.Data;
using System.Data.SqlClient;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Windows;
using System.ComponentModel;
using System.Drawing;
using System.Text;
namespace WebApplication2
{
public partial class WebForm1 : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
protected void ButtonClick(object sender, EventArgs e){
using (var sqlConnection1 = new SqlConnection("Data
Source=SERVER; Initial Catalog = Metal; Integrated
Security = True"))
{
SqlDataAdapter cmd = new SqlDataAdapter();
using (var insertData = new SqlCommand("INSERT INTO ApptIn
(CONTROLNUMBER, CARRIERNAME, EXPECTEDNUMOFPIECES, EXPECTEDWEIGHT) VALUES
(@carrierSelectInput,
@pieceCountInput, @weightinput)")
{
SqlCommand generateApptNum = new SqlCommand();
View appNumView = new View();
insertData.Connection = sqlConnection1;
string carrierSelectInput = DropDownList1.Text;
string pieceCountInput = TextBox1.Text;
string weightInput = TextBox2.Text;
insertData.Parameters.Add("@carrierSelectInput",
carrierSelectInput.VarChar);
insertData.Parameters.Add("@pieceCountInput",
pieceCountInput.Int);
insertData.Parameters.Add("@weightInput",
weightInput.Int);
cmd.InsertCommand = insertData;
sqlConnection1.Open();
insertData.ExecuteNonQuery();
generateApptNum.ExecuteNonQuery();
sqlConnection1.Close();
}
}
}
}
}
編輯:我曾嘗試運行SQL進入數據庫,它給了一個錯誤,所以我改變了它(代碼更新),但它放在ID = 0 ...
當子查詢返回null時,max可能爲空。嘗試'COALESCE((SELECT MAX(CONTROLNUMBER)FROM ApptIn),0)+ 1'。另外,我懷疑INSERT的VALUES子句中的子查詢是否是有效的語法?第二個命令generateApptNum是做什麼的? – dlatikay
選擇ID列並使進行自動遞增。 –
Musab
我嘗試了COALESCE,但沒有改變。 'generateApptNum'是我在解決這個問題時添加的內容。它只會返回新的CONTROLNUMBER供用戶查看。 – Pandasai