为什么我从 SQL Server 收到错误“指定的字符串不是电子邮件地址所需的格式”
本文关键字:字符串 电子邮件地址 格式 SQL Server 错误 为什么 | 更新日期: 2023-09-27 18:36:35
这对我来说非常神秘,因为我丝毫没有表示此参数是指电子邮件地址(形式为 XXX@XXX.XXX)。没有属性、元数据等。我在变量命名中使用了email
这个词,但除此之外,我不明白 SQL Server 是如何给我这个错误的。
.HTML:
<fieldset class="form-group">
<label for="email-address">Email address</label>
<input type="text" class="form-control" name="eaddr" id="email-address" value="lkassjdkljasdklj@gmail.com">
</fieldset>
JavaScript:
$.ajax({
...,
data: JSON.stringify({
...
Email: $('input[name="eaddr"').val(),
...
}),
....
});
C#:
public Guid? AddPartner ( PartnerInit P )
{
// returns the id of the partner that was added
// on error, returns null
Guid? pid = null;
// Insert partner to database
using (SqlCommand cmd = new SqlCommand("AddPartner", this._Conn))
{
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.AddWithValue("@first_name", P.FirstName);
cmd.Parameters.AddWithValue("@last_name", P.LastName);
cmd.Parameters.AddWithValue("@org_name", P.OrgName);
cmd.Parameters.AddWithValue("@email", P.Email);
cmd.Parameters.AddWithValue("@region_id", P.RegionId);
SqlParameter output = new SqlParameter("@new_guid", SqlDbType.UniqueIdentifier) { Direction = ParameterDirection.Output };
cmd.Parameters.Add(output);
this._Conn.Open();
cmd.ExecuteNonQuery();
pid = (Guid?)output.Value;
this._Conn.Close();
}
T-SQL:
CREATE PROCEDURE AddPartner (@first_name NVARCHAR(50),
@last_name NVARCHAR(50),
@org_name NVARCHAR(50),
@email NVARCHAR(254),
@region_id INT,
@new_guid UNIQUEIDENTIFIER OUTPUT)
AS
BEGIN
DECLARE @T TABLE ( OutputGuid UNIQUEIDENTIFIER )
INSERT INTO Partners (first_name, last_name, org_name, email, region_id)
OUTPUT INSERTED.id INTO @T
VALUES (@first_name, @last_name, @org_name, @email, @region_id)
SELECT @new_guid = OutputGUID FROM @T
END
GO
这不是错误...我只是很好奇当我为电子邮件字段输入类似 "blahblahblah"
的内容时,它会给我错误
指定的字符串不是电子邮件所需的格式 地址。
每当使用无效邮件地址定义MailAddress
或MailMessage
对象时,都会发生此错误消息。
似乎您的表列没有触发器或任何类型的约束。