我創建了一個表,如下表所示:從數據庫獲取錯誤消息,當我嘗試更新
string fullTableName = string.Format("[dbo].[{0}]", tableName);
string fullKeyName = string.Format("[PK_{0}]", tableName);
string query = string.Format("{0} {1} {2} {3} {4} {5} {6} {7} {8} {9} {10} {11} {12} {13} {14} {15} {16} {17} {18} {19}"
, "USE [DB_15202_2614d162]"
, "SET ANSI_NULLS ON"
, "SET QUOTED_IDENTIFIER ON"
, "CREATE TABLE ", fullTableName, " ([ClientCode] [nchar](5) NOT NULL, [CompanyName] [nvarchar](40) NOT NULL,"
, "[Address1] [nvarchar](60) NOT NULL, [Address2] [nvarchar](60) NULL, [City] [nvarchar](20) NULL,"
, "[Province] [nvarchar](10) NOT NULL, [PostalCode] [nvarchar](10) NULL, [YTDSales] [decimal](18, 2) NOT NULL,"
, "[CreditHold] [tinyint] NOT NULL, [Notes] [nvarchar](max) NULL,"
, "CONSTRAINT ", fullKeyName, " PRIMARY KEY CLUSTERED"
, "([ClientCode] ASC) WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY])"
, "ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]"
, "INSERT INTO ", fullTableName, " ([ClientCode], [CompanyName], [Address1],
[Address2], [City], [Province], [PostalCode], [YTDSales], [CreditHold], [Notes])
VALUES (N'AROUT', N'Around the Horn', N'120 Hanover Sq.', NULL, N'London', N'ON',
N'L4N 7G5', CAST(1500.00 AS Decimal(18, 2)), 1, null)"
, "INSERT INTO ", fullTableName, " ([ClientCode], [CompanyName], [Address1],
[Address2], [City], [Province], [PostalCode], [YTDSales], [CreditHold], [Notes])
VALUES (N'BOTTM', N'Bottom-Dollar Markets', N'23 Tsawassen Blvd.', NULL,
N'Tsawassen', N'BC', N'V2R 7A6', CAST(4689.24 AS Decimal(18, 2)), 0, N'Longest standing customer')"
);
using (SqlCommand cmd = new SqlCommand())
{
cmd.CommandType = CommandType.Text;
cmd.CommandText = query;
cmd.Connection = conn;
conn.Open();
cmd.ExecuteNonQuery();
}
}
,當我試圖從這裏更新表:
public static int UpdateClient(Client client)
{
using (SqlConnection conn = new SqlConnection(connString))
{
string query = string.Format("{0} {1} {2} {3} {4} {5}{6} {7} {8} {9}"
, "UPDATE Client906697"
, "SET ClientCode = @clientCode"
, "CompanyName = @companyName"
, ",Address1 = @address1"
, ",Address2 = @address2"
, ",City = @city"
, ",Province = @province"
, ",PostalCode = @postalCode"
, ",YTDSales [email protected]"
, ",CreditHold = @creditHold"
, ",Notes = @notes");
byte creditHold = client.HoldsCredit ? (byte)1 : (byte)0;
using (SqlCommand cmd= new SqlCommand())
{
cmd.CommandType = CommandType.Text;
cmd.CommandText = query;
cmd.Connection = conn;
cmd.Parameters.AddWithValue("@clientCode", client.ClientCode);
//cmd.Parameters.AddWithValue("@companyName", client.CompanyName);
cmd.Parameters.AddWithValue("@address1", client.Address1);
if (client.Address2 != null)
{
cmd.Parameters.AddWithValue("@address2", client.Address2);
}
else
{
cmd.Parameters.AddWithValue("@address2", DBNull.Value);
}
if (client.City != null)
{
cmd.Parameters.AddWithValue("@city", client.City);
}
else
{
cmd.Parameters.AddWithValue("@city", DBNull.Value);
}
cmd.Parameters.AddWithValue("@province", client.Province);
cmd.Parameters.AddWithValue("@postalCode", client.PostalCode);
cmd.Parameters.AddWithValue("@ytdSales", client.YTDSales);
cmd.Parameters.AddWithValue("@creditHold", creditHold);
if (client.Notes != null)
{
cmd.Parameters.AddWithValue("@notes", client.Notes);
}
else
{
cmd.Parameters.AddWithValue("@notes", DBNull.Value);
}
conn.Open();
int rowsAffected = cmd.ExecuteNonQuery();
return rowsAffected;
}
}
}
我得到重複的關鍵約束錯誤,我找不到原因。 有人可以幫我嗎?
謝謝。我只是解決了這個問題。 – Jay