ExecuteNonQuery()方法主要用戶更新數(shù)據(jù),通常它使用Update,Insert,Delete語句來操作數(shù)據(jù)庫,其方法返回值意義:對于 Update,Insert,Delete 語句 執(zhí)行成功是返回值為該命令所影響的行數(shù),如果影響的行數(shù)為0時返回的值為0,如果數(shù)據(jù)操作回滾得話返回值為-1,對于這種更新操作 用我們平時所用的是否大于0的判斷操作應(yīng)該沒有問題而且比較好,但是對于其他的操作如對數(shù)據(jù)庫結(jié)構(gòu)的操作,如果操作成功時返回的卻是-1,這種情況跟我們平時的思維方式有點差距所以應(yīng)該好好的注意了,例如對數(shù)據(jù)庫共添加一個數(shù)據(jù)表的Create操作,當(dāng)創(chuàng)建數(shù)據(jù)表成功時返回-1,如果操作失敗的話(如數(shù)據(jù)表已經(jīng)存在)往往會發(fā)生異常,所以執(zhí)行這種操作時最好用try--catch--語句來容錯。
例如用ExecuteNonQuery()方法執(zhí)行create操作
[code]
SqlConnection conn = new SqlConnection("Data Source=.;Initial Catalog=PSDB;Integrated Security=SSPI");
string str = "CREATE TABLE aaa ( " +
"[ID] [int] IDENTITY (1, 1) NOT NULL , " +
"[BasicID] [int] NULL ," +
"[AdoptedName] [varchar] (50) COLLATE Chinese_PRC_CI_AS NULL ," +
"[AdoptedSex] [char] (2) COLLATE Chinese_PRC_CI_AS NULL ," +
"[AdoptBirthday] [smalldatetime] NULL ," +
"[AdoptedType] [varchar] (100) COLLATE Chinese_PRC_CI_AS NULL ," +
"[ApprTime] [smalldatetime] NULL ," +
"[Remark] [varchar] (500) COLLATE Chinese_PRC_CI_AS NULL " +
") ON [PRIMARY] ";
SqlCommand comm = new SqlCommand(str, conn);
int i = 10;
try
{
conn.Open();
i = comm.ExecuteNonQuery();
conn.Close();
}
catch (Exception ex)
{
Response.Write(ex.Message);
}
Response.Write(i.ToString());
[code]
如果執(zhí)行成功的話 返回的值為-1,如果數(shù)據(jù)表已經(jīng)存在的話返回異常:數(shù)據(jù)庫中已存在名為 'aaa' 的對象。
您可能感興趣的文章:- asp.net彈出窗口 返回值
- ASP.NET 獲取存儲過程返回值的實現(xiàn)代碼
- asp.net中將js的返回值賦給asp.net控件的小例子
- asp.net實現(xiàn)調(diào)用存儲過程并帶返回值的方法
- ASP.NET Core Mvc中空返回值的處理方法詳解