public int BOOS097(SqlConnection conn, SqlTransaction Xran)
{
int returnCode = 0;
try
{
SqlCommand cmd = new SqlCommand();
string sqlstr =
@"UPDATE WOWWORD SET ORG = @org,DEPARTMENT = @department,USER_ID = @user_id WHERE SEQID = @seqid";
cmd.Connection = conn;
cmd.Transaction = Xran;
cmd.CommandText = sqlstr;
cmd.Parameters.AddWithValue("@org", in_wow_org[0].ORG);
cmd.Parameters.AddWithValue("@department", in_wow_org[0].DEPARTMENT);
cmd.Parameters.AddWithValue("@user_id", in_wow_org[0].USER_ID);
cmd.Parameters.AddWithValue("@seqid", in_wow_org[0].SEQID);
SqlDataAdapter da = new SqlDataAdapter(cmd);
da.Fill(out_wow_org, "keys");
count = out_wow_org.Tables["keys"].Rows.Count;
returnCode = 0;
}
CRD功能都可以只有updata不能 也只有sql的地方 本身沒有錯誤訊息但到postman時會出現'並未將物件參考設定為物件的執行個體' 逐步執行也看不出個問題在哪 是寫法錯誤了? 求指點
既然有 try / catch 了
在catch中斷抓的到東西嗎?
錯誤訊息可以看的出錯在哪一行.
da.Fill(out_wow_org, "keys");
count = out_wow_org.Tables["keys"].Rows.Count;
應該在這 逐步這=0 在想怎麼改 Fill改成Update錯誤變成Update 找不到 TableMapping['WOWWORD']
沒有什麼應該,
如果連錯在哪都不確定,
只有葉先生能夠回答你了.
忽然想到一個,
你確定有 in_wow_org[0] 嗎?
如果in_wow_org的長度是0就會噴錯了.
tw70126_tw 君說的對,
UPDATE不應該用DataAdapter,
話說你的INSERT跟DELETE是怎麼寫的?
下面這樣子試試
try
{
SqlCommand cmd = new SqlCommand();
string sqlstr =
@"UPDATE WOWWORD SET ORG = @org,DEPARTMENT = @department,USER_ID = @user_id WHERE SEQID = @seqid";
cmd.Connection = conn;
cmd.Transaction = Xran;
cmd.CommandText = sqlstr;
cmd.Parameters.AddWithValue("@org", in_wow_org[0].ORG);
cmd.Parameters.AddWithValue("@department", in_wow_org[0].DEPARTMENT);
cmd.Parameters.AddWithValue("@user_id", in_wow_org[0].USER_ID);
cmd.Parameters.AddWithValue("@seqid", in_wow_org[0].SEQID);
returnCode = cmd.ExecuteNonQuery();
}
通常會發生並未將物件參考設定為物件的執行個體
是因為你宣告的物件在記憶體空間並沒有位址,白話就是沒有給定初始值
乍看之下應該是這個物件吧in_wow_org
你要不要先確認這幾個欄位值有沒有null
in_wow_org[0].ORG
in_wow_org[0].DEPARTMENT
in_wow_org[0].USER_ID
in_wow_org[0].SEQID
out_wow_org
我猜是in_wow_org
或out_wow_org
的原因