visual studio 2013 - 字符串必须只有一个字符长

时间:2014-07-14 11:13:42

标签: string visual-studio-2013 converter

当我在数据库中提交和存储时,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)

我该如何解决这个问题?

2 个答案:

答案 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