我想问下有写地方写了@,代表什么意思啊?
string btnSubmit="Insert Into computerMaintenance(@computerName,@computerUser,@computerOS)Values(......);

解决方案 »

  1.   

    相当于sql语句中的变量。在.net多用于向sql语句或存储过程中传入参数。
    可以参看ms的.net petshop,里面应用的比较多,而且比较精典
      

  2.   

    SqlParameter 类请参见
    SqlParameter 成员 | System.Data.SqlClient 命名空间 | SqlParameterCollection | SqlCommand | 代码:使用参数化存储过程的结果填充数据集 (Visual Basic) | 代码:调用参数化存储过程 (Visual Basic) | SqlParameter 成员(Visual J# 语法) | C++ 托管扩展编程 
    要求
    命名空间: System.Data.SqlClient平台: Windows 98, Windows NT 4.0, Windows ME, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 系列, .NET Framework 精简版 - Windows CE .NET程序集: System.Data (在 System.Data.dll 中)
    语言
    C#C++JScriptVisual Basic全部显示
    表示 SqlCommand 的参数,也可以是它到 DataSet 列的映射。不能继承此类。有关此类型所有成员的列表,请参阅 SqlParameter 成员。System.Object
       System.MarshalByRefObject
          System.Data.SqlClient.SqlParameter[Visual Basic]
    NotInheritable Public Class SqlParameter
       Inherits MarshalByRefObject
       Implements IDbDataParameter, IDataParameter, ICloneable[C#]
    public sealed class SqlParameter : MarshalByRefObject,
       IDbDataParameter, IDataParameter, ICloneable[C++]
    public __gc __sealed class SqlParameter : public
       MarshalByRefObject, IDbDataParameter, IDataParameter, ICloneable[JScript]
    public class SqlParameter extends MarshalByRefObject implements
       IDbDataParameter, IDataParameter, ICloneable线程安全
    此类型的所有公共静态(Visual Basic 中为 Shared)成员对多线程操作而言都是安全的。但不保证任何实例成员是线程安全的。备注
    参数名称不区分大小写。示例
    [Visual Basic, C#] 下面的示例通过 SqlDataAdapter 中的 SqlParameterCollection 集合创建 SqlParameter 的多个实例。这些参数用于从数据源中选择数据并将数据放在 DataSet 中。此示例假定已经用适当的架构、命令和连接创建了 DataSet 和 SqlDataAdapter。[Visual Basic] 
    Public Sub AddSqlParameters()
        ' ...
        ' create myDataSet and myDataAdapter
        ' ...
        myDataAdapter.SelectCommand.Parameters.Add("@CategoryName", SqlDbType.VarChar, 80).Value = "toasters"
        myDataAdapter.SelectCommand.Parameters.Add("@SerialNum", SqlDbType.Int).Value = 239
        
        myDataAdapter.Fill(myDataSet)
    End Sub 'AddSqlParameters[C#] 
    public void AddSqlParameters() 
    {
    // ...
    // create myDataSet and myDataAdapter
    // ...  myDataAdapter.SelectCommand.Parameters.Add("@CategoryName", SqlDbType.VarChar, 80).Value = "toasters";
      myDataAdapter.SelectCommand.Parameters.Add("@SerialNum", SqlDbType.Int).Value = 239;
      myDataAdapter.Fill(myDataSet);}