代码如下,求哪位指点一下哪里的问题啊,谢谢了! public int Insert(string id, string msid, string deptid, string postid,int age, string name, string sex, string phone, Byte[] photo, string vcomment)
{
string sconn = dbService.GetScon();
OdbcConnection conn = new OdbcConnection(sconn);
string sql = "insert into STAFFINFO(STAFF_FNBR,STAFFNAME,MSFNBR,SEX,DEPARTMENTS,POSTFNBR,AGE,PHONE,PHOTO,vComment) values"
+ "(?id,?name,?msid,?sex,?deptid,?postid,?age,?phone,?photo,?comment)";
OdbcCommand cmd = new OdbcCommand(sql, conn);
cmd.Parameters.Add("?id",OdbcType.VarChar).Value=id;
cmd.Parameters.Add("?msid", OdbcType.VarChar).Value = msid;
cmd.Parameters.Add("?deptid", OdbcType.VarChar).Value = deptid;
cmd.Parameters.Add("?postid", OdbcType.VarChar).Value = postid;
cmd.Parameters.Add("?age", OdbcType.Int).Value = age;
cmd.Parameters.Add("?name", OdbcType.VarChar).Value = name;
cmd.Parameters.Add("?sex", OdbcType.VarChar).Value = sex;
cmd.Parameters.Add("?phone", OdbcType.VarChar).Value = phone;
if (photo == null)
{
cmd.Parameters.Add("?photo", OdbcType.VarBinary).Value = DBNull.Value;
}
else
{
cmd.Parameters.Add("?photo", OdbcType.VarBinary).Value = photo;
}
cmd.Parameters.Add("?comment", OdbcType.VarChar).Value = vcomment;
try
{
conn.Open();
int num = cmd.ExecuteNonQuery();
return num;
}
catch (Exception ex)
{
return 0;
}
finally
{
conn.Close();
conn.Dispose();
}
}
{
string sconn = dbService.GetScon();
OdbcConnection conn = new OdbcConnection(sconn);
string sql = "insert into STAFFINFO(STAFF_FNBR,STAFFNAME,MSFNBR,SEX,DEPARTMENTS,POSTFNBR,AGE,PHONE,PHOTO,vComment) values"
+ "(?id,?name,?msid,?sex,?deptid,?postid,?age,?phone,?photo,?comment)";
OdbcCommand cmd = new OdbcCommand(sql, conn);
cmd.Parameters.Add("?id",OdbcType.VarChar).Value=id;
cmd.Parameters.Add("?msid", OdbcType.VarChar).Value = msid;
cmd.Parameters.Add("?deptid", OdbcType.VarChar).Value = deptid;
cmd.Parameters.Add("?postid", OdbcType.VarChar).Value = postid;
cmd.Parameters.Add("?age", OdbcType.Int).Value = age;
cmd.Parameters.Add("?name", OdbcType.VarChar).Value = name;
cmd.Parameters.Add("?sex", OdbcType.VarChar).Value = sex;
cmd.Parameters.Add("?phone", OdbcType.VarChar).Value = phone;
if (photo == null)
{
cmd.Parameters.Add("?photo", OdbcType.VarBinary).Value = DBNull.Value;
}
else
{
cmd.Parameters.Add("?photo", OdbcType.VarBinary).Value = photo;
}
cmd.Parameters.Add("?comment", OdbcType.VarChar).Value = vcomment;
try
{
conn.Open();
int num = cmd.ExecuteNonQuery();
return num;
}
catch (Exception ex)
{
return 0;
}
finally
{
conn.Close();
conn.Dispose();
}
}
if (photo == null)
{
cmd.Parameters.Add("?photo", OdbcType.VarBinary).Value = DBNull.Value;
}
else
{
cmd.Parameters.Add("?photo", OdbcType.VarBinary).Value = photo;
}
这三个之中你是不是要ADD两个相同的参数?
{
cmd.Parameters.Add("?photo", OdbcType.VarBinary).Value = DBNull.Value;
}
else
{
cmd.Parameters.Add("?photo", OdbcType.VarBinary).Value = photo;
}
用OdbcType.VarBinary改成OdbcType.Image,而且用OdbcType.VarBinary的大小是8000,也就8K不够,这你的图片得多小.....不过一般数据库不存在图片,只存放图片的路径
看到了吗?只能是一个问号代表一个参数,你从哪里学来的问号后面跟参数名的?ODBC不支持指定参数名,你看最终解析的SQL语句啊,每个参数都值替换了问号的部分,后面你多余的参数名如实的放了上去,不出错才怪了。想通过参数名进行查询,只能用MySql官方提供的.NET驱动。
这个是cmd.pParametera.add("?Name").value=Name.NET在MySQL中添加数据的不?cmd.pParametera.add("@Name").value=Name 在MySQL中是不是不支持