我写了一个插入一条记录的存储过程,而且经调试是正确的:
create procedure insert_record
@tel char(15),
@name char(15)
as
insert into addressbook(tel,name) values(@tel,@name)但是我在C#中调用时,编译器始终说:insert_record附近有语法错误,我的程序如下:
using System;
using System.Data;
using System.Data.SqlClient;class C
{
public static void Main()
{
try
{
SqlConnection  mySqlConnection=new SqlConnection("server=MY-TOMATO;database=number;uid=sa;pwd=sa");
SqlCommand mySqlCommand=mySqlConnection.CreateCommand(); mySqlCommand.CommandText="insert_record @tel,@name";
mySqlCommand.Parameters.Add("@tel",SqlDbType.Char,15);
mySqlCommand.Parameters.Add("@name",SqlDbType.Char,15); Console.Write("please input tel:");
mySqlCommand.Parameters["@tel"].Value =Console.ReadLine();
Console.WriteLine();
Console.Write("please input name");
mySqlCommand.Parameters["@name"].Value =Console.ReadLine(); mySqlConnection.Open();
mySqlCommand.ExecuteNonQuery();  //执行到这里时就产生异常了,说insert_record附近有语法错误,而且我excute insert_record @tel,@name还是一样的出错!
mySqlConnection.Close(); Console.WriteLine("execute store procedure successfully!");
}
catch(Exception e)
{
Console.WriteLine(e.Message);
}
}
}
请大家帮我看看这是怎么回事啊!谢谢大家了!

解决方案 »

  1.   

    mySqlCommand.CommandType  = CommandType.StoredProcedure;
      

  2.   

    mySqlCommand.CommandText="insert_record"
      

  3.   

    可以专门写个StoredProcedure的类。来执行一句sql语句
      

  4.   

    你的数据插入表名是变量,建设用系统存储过程sp_executesql来执行你的插入数据语句,
      

  5.   

    呵呵,忘了看你贴的源代码
    mySqlCommand.CommandText="insert_record @tel,@name";
    是错误的,应为
    mySqlCommand.CommandText="insert_record";