在SQL Server中,ID是非空整数和标识.
当我运行以下代码时,我在最后一行得到一个InvalidCastException:
SqlCommand cmd = new SqlCommand();
cmd.Connection = _conn;
cmd.CommandText = @"INSERT INTO [Users] (Name, Email, Password) VALUES (@name, @email, @pass); SELECT SCOPE_IDENTITY()";
cmd.Parameters.AddWithValue("@name", newUser.Name);
cmd.Parameters.AddWithValue("@email", newUser.Email);
cmd.Parameters.AddWithValue("@pass", newUser.PasswordHash);
int id = (int)cmd.ExecuteScalar();
Run Code Online (Sandbox Code Playgroud)
什么是ExecuteScalar()在这里返回?无论它返回什么,都有一个ToString()使它看起来像一个数字,所以这个可怕的代码行工作:
int id = Int32.Parse(cmd.ExecuteScalar().ToString());
Run Code Online (Sandbox Code Playgroud) 在我的项目中,我在同一台服务器上有两个独立的DB.除了DB"B"中需要在DB"A"中访问的三列之外,DB是自给自足的.
如果我在A中有一个直接从B访问三列的存储过程,是否有性能方面的考虑?
目前,我们运行一个夜间作业将表B中所需的数据导入表A,这样存储的proc就不会超出A的范围.
这是最好的方法吗?
跨数据库存储过程是否在最佳实践中?
我目前正在锁定可在给定Windows应用程序平台上使用的网络通信协议.
您能否建议一个免费提供的工具,以便我监控/识别正在使用的通信协议,即
我有以下Select语句,但想要将其更改为使用iner连接,因为我相信它们更有效,但不太确定从哪里开始.
DECLARE @myNameID int
DECLARE @myAddressID int
DECLARE @myFirstName nvarchar(256)
SET @myNameID = 1
SET @myAddressID =1
SET @myFirstName='Nathan'
SELECT @myNameID = myNameID
FROM
NameTable Name,
AddressTable Address,
CountryTable Country
WHERE
Name.[FirstName] = @ myFirstName and
Address. AddressID = @ myAddressID and
Address.CountryID = Country.CountryID and
Name.SecondID = Country.SecondID
Run Code Online (Sandbox Code Playgroud) sql-server ×3
sql ×2
ado.net ×1
c# ×1
monitoring ×1
mysql ×1
networking ×1
protocols ×1
t-sql ×1
windows ×1