当我在数据库中提交和存储时,Visual Studio给出了以下错误。
"字符串必须只有一个字符长"
尝试解决尝试了但没有成功:
cmd.Parameters.Add("@nomeEmpresa", OleDb.OleDbType.Integer).Value = Convert.ToChar(cbxEmpresa.Text)
cmd.Parameters.Add("@nomeContacto", OleDb.OleDbType.Integer).Value = Convert.ToChar(txtNomeContacto.Text)
cmd.Parameters.Add("@apelidoContacto", OleDb.OleDbType.Integer).Value = Convert.ToChar(txtApelidoContacto.Text)
cmd.Parameters.Add("@funcao", OleDb.OleDbType.Integer).Value = Convert.ToChar(txtFuncao.Text)
我该如何解决这个问题?
答案 0 :(得分:1)
如果你查看Convert.ToChar的文档,你可以阅读
将指定字符串的第一个字符转换为Unicode 字符。命名空间:系统程序集:mscorlib(在mscorlib.dll中)
语法
public static char ToChar(string value)valueType:System.String
长度为1的字符串。
这是你错误的原因。
但是您的代码似乎不正确。如果要将用户的Integer值类型传递给sql,则需要使用Int32.TryParse(textbox.text)
相反,如果要传递字符串值,则需要将参数类型更改为SqlDbType.NVarChar。
答案 1 :(得分:0)
Convert.ToChar(string)要求字符串只包含一个字符。在调用之前,您需要为每个字符串设置这个字符串,或者手动选择字符串中的第一个字符或类似的字符串。
Convert.ToChar的文档(字符串),抛出FormatException"值的长度不是1。" http://msdn.microsoft.com/en-us/library/5f3ew98y(v=vs.110).aspx