私は私のasp.net Webサイトを通じてデータベーステーブルに挿入した最後のレコードのIDを取得しようとしています。
私のinsert statmentはストアドプロシージャですが、私はスカラー関数を使ってみましたが、これは私にこれを与えています。指定されたキャストは無効です。挿入ステートメントに対してスカラーを実行
これは私が使用していますinsert文である:
@ClientID varchar(250),
@BType varchar(250),
@CIP varchar(50),
@Sess varchar(500),
@LoggedIn int,
@LoggedInTime datetime
AS
BEGIN
INSERT INTO tblSession (ClientID, BType, CIP, Sess, LoggedIn, LoggedInTime) VALUES (@ClientID, @BType, @CP,@Sess, @LoggedIn, @LoggedInTime)
SELECT SCOPE_IDENTITY()
END
そして、私が呼び出しています方法を:
using (SqlConnection con = DBConnection.getConnection())
{
string sql = "Add";
SqlCommand command = new SqlCommand(sql, con);
command.CommandType = CommandType.StoredProcedure;
command.Parameters.Add("@ClientID ", SqlDbType.VarChar).Value = id;
command.Parameters.Add("@BType", SqlDbType.VarChar).Value = bt;
command.Parameters.Add("@CIP", SqlDbType.VarChar).Value = cip;
command.Parameters.Add("@Sess", SqlDbType.VarChar).Value = s;
command.Parameters.Add("@LoggedIn", SqlDbType.Int).Value = LoggedIn;
command.Parameters.Add("@LoggedInTime", SqlDbType.DateTime).Value = session.LoggedInTime;
int x;
x = (int)command.ExecuteScalar();
return x;
}
すべてのヘルプははるかにあるくださいは
command.ExecuteScalar()は何かを返しますか?もしそうなら、どんなタイプですか? –
出力パラメータを使用する方が良いか返り値を返します。 http://msdn.microsoft.com/en-us/library/59x02y99(v=vs.71).aspx –
commad.execute scallar return 0 – wandos