提问人:AddieCaddy 提问时间:7/7/2022 更新时间:7/7/2022 访问量:1230
如何修复 Windows 窗体应用程序中的“无法从'字符串'转换为 System.Data.SqlDbType”
How to fix 'Cannot convert from 'string' to System.Data.SqlDbType' in a Windows Forms Application
问:
仅当我为正在构建的示例应用程序创建基本登录屏幕时,才会发生这种情况。我在应用程序中有各种其他函数,可以读取/写入/更新数据库中的行而不会出错。
private void btnLogin_Click(object sender, EventArgs e)
{
try
{
if(txtUname.Text == "" && txtPW.Text == "")
{
MessageBox.Show("Please fill in required fields!");
}
else
{
SqlCommand cmd = new SqlCommand("select * from LoginUsers where U_Name=@Name and U_Pass=@Pass", con);
cmd.Parameters.Add("@Name", txtUname.Text); <- Error on textbox string
cmd.Parameters.Add("@Pass", txtPW.Text); <- Error on textbox string
SqlDataAdapter adpt = new SqlDataAdapter(cmd);
DataSet ds = new DataSet();
adpt.Fill(ds);
int count = ds.Tables[0].Rows.Count;
if(count == 1 )
{
MessageBox.Show("Successfully Logged in!");
}
else
{
MessageBox.Show("Incorrect username or password!");
}
}
}
catch(Exception ex)
{
MessageBox.Show(ex.Message);
}
}
答:
0赞
dLcreations
7/7/2022
#1
尝试以下任何人:
方法1:
command.Parameters.Add("@ID", SqlDbType.Int).Value = customerID;
方法2:
command.Parameters.AddWithValue("@demographics", demoXml);
只是一个基于定义的分类的随机代码,如果您在使用上述任何一种方法后仍然遇到问题,请告诉我。
评论
0赞
AddieCaddy
7/7/2022
AddWithValue出了什么问题,这才是真正解决我的问题。
0赞
dLcreations
7/7/2022
@AddieCaddy - 这是为了避免类型不匹配问题。大多数时候,如果您确定自己传递的内容,这些类型的不匹配并不重要。正确的 gunr2171 ?
0赞
Charlieface
7/7/2022
@AddieCaddy 第一个选项是您一直想要的选项,至少在字符串、日期和小数方面是这样
评论