这是一个写入的一个SQL类,麻烦谁帮我看看在ButtonCLICK中该怎么写代码
public class Entity
{
private string _EntityID;
private string _EntityName;
private string _Address1;
private string _Address2;
private string _CityCode;
private string _Zip;
private string _Phone1;
private string _Phone2;
private string _Fax;
private string _WebAddress;
private string _Notes;
public string WebAddress
{
set
{
this.WebAddress = value;
}
get
{
return this._WebAddress;
}
}
public string Notes
{
set
{
this._Notes = value;
}
get
{
return this._Notes;
}
}
public string Address1
{
set
{
this._Address1=value;
}
get
{
return this._Address1;
}
}
public string Address2
{
set
{
this._Address2=value;
}
get
{
return this._Address2;
}
}
public string EntityID
{
set
{
this._EntityID = value;
}
get
{
return this._EntityID;
}
}
public string EntityName
{
set
{
this._EntityName = value;
}
get
{
return this._EntityName;
}
}
public string CityCode
{
set
{
this._CityCode = value;
}
get
{
return this._CityCode;
}
}
public string Zip
{
set
{
this._Zip = value;
}
get
{
return this._Zip;
}
}
public string Phone1
{
set
{
this._Phone1 = value;
}
get
{
return this._Phone1;
}
}
public string Phone2
{
set
{
this._Phone2 = value;
}
get
{
return this._Phone2;
}
}
public string Fax
{
set
{
this._Fax = value;
}
get
{
return this._Fax;
}
}
public static int Insert(string EntityID,string EntityName, string Zip, string CityCode, string Phone1,string Fax,string WebAddress,string Notes,string Address1,string Address2,string Phone2)
{
// Initialize command
SqlConnection con = new SqlConnection(System.Configuration.ConfigurationManager.ConnectionStrings["ConnStr"].ConnectionString);
SqlCommand cmd = new SqlCommand("EntityInsert", con);
cmd.CommandType = CommandType.StoredProcedure;
// Initialize parameters
cmd.Parameters.Add("@ReturnValue",SqlDbType.Int).Direction = ParameterDirection.ReturnValue;
cmd.Parameters.AddWithValue("@EntityID", EntityID);
cmd.Parameters.AddWithValue("@Zip", Zip);
cmd.Parameters.AddWithValue("@EntityName", EntityName);
cmd.Parameters.AddWithValue("@CityCode", CityCode);
cmd.Parameters.AddWithValue("@Phone1", Phone1);
cmd.Parameters.AddWithValue("@Fax", Fax);
cmd.Parameters.AddWithValue("@WebAddress", WebAddress);
cmd.Parameters.AddWithValue("@Notes", Notes);
cmd.Parameters.AddWithValue("@Address1", Address1);
cmd.Parameters.AddWithValue("@Address2", Address2);
cmd.Parameters.AddWithValue("@Phone2", Phone2);
// Execute command
int returnValue = 0;
using (con)
{
con.Open();
cmd.ExecuteNonQuery();
returnValue = (int)cmd.Parameters["@ReturnValue"].Value;
}
return returnValue;
}
protected void Btn_Insert_Click(object sender, EventArgs e)
{
?????????????????
}
其中报错CS0120: 非静态的字段、方法或属性“DB.Entity.EntityID.get”要求对象引用 应该在那里改?
--------------------编程问答-------------------- 这样写实在是糟糕透了
报这个错的原因是你在static方法里调用了非静态属性
改写的方式有很多种,在这里我给你个建议
要么把所有的属性给删掉干脆不要
要么就建立一个实例对象,把值赋给属性之后调用对象属性 --------------------编程问答--------------------
--------------------编程问答-------------------- 找麻烦,一个态类,那么多属性最后又来个静态方法,晕.
protected void Btn_Insert_Click(object sender, EventArgs e)
{
Entity newent=new Entity();
//给各个字段付值
newent.EntityID=1
.
.
.
.
.
.
.
newent.Phone2="13812312312"
//最后调用方法
int i;
i=newent.Insert(参数)
}
建议操作类和基本类分离
把基本类对象作为参数传入操作类的方法
这样的话那些属性都是废品.
直接用Entity.Insert(参数1,参数2.....参数N)就行了.
Insert是个静态方法,应直接调用.
如果用下面的方式是肯定出错的(静态方法不能实例化)!
--------------------编程问答-------------------- 看看我的:
Entity abc = new Entity();
abc.Insert(参数1,参数2.....参数N);
using System;
using System.Collections.Generic;
using System.Text;
namespace HR_GZ.Model.Entities
{
public class zhangtaoData
{
#region Modelf
private string _ztid;//一级分类的id号
private string _ztmc;
private string _ztmcjm;
private string _jianyan;
private string _datetime;
private string _bzry;
private string _tablenames;
/// <summary>
/// 类别的id
/// </summary>
public string ztId
{
set { _ztid = value; }
get { return _ztid; }
}
/// <summary>
/// 类别的名称
/// </summary>
public string ztmc
{
set { _ztmc = value; }
get { return _ztmc; }
}
/// <summary>
/// 解密后的名称
/// </summary>
public string ztmcjm
{
set { _ztmcjm = value; }
get { return _ztmcjm; }
}
/// <summary>
///
/// <summary>
/// 录入人员的名称
/// </summary>
public string bzry
{
set { _bzry = value; }
get { return _bzry; }
}
/// <summary>
/// <summary>
/// 录入时间
/// </summary>
public string DateTime
{
set { _datetime = value; }
get { return _datetime; }
}
/// <summary>
///
/// <summary>
/// 记录某个表的名字
/// </summary>
public string tablenames
{
set { _tablenames = value; }
get { return _tablenames; }
}
/// <summary>
///
/// <summary>
/// 检验是否查到了记录
/// </summary>
public string jianyan
{
set { _jianyan = value; }
get { return _jianyan; }
}
#endregion Modelf
}
}
调用的方法:
public void Add(zhangtaoData zhangtaoData)
{
SqlParameter[] sqlParameters = {
new SqlParameter("@ztmc",SqlDbType.NVarChar),
new SqlParameter("@bzry",SqlDbType.NVarChar),
new SqlParameter("@bzsj",SqlDbType.NVarChar),
new SqlParameter("@ztid",SqlDbType.NVarChar)
};
sqlParameters[0].Value = zhangtaoData.ztmc;
sqlParameters[1].Value = zhangtaoData.bzry;
sqlParameters[2].Value = zhangtaoData.DateTime;
sqlParameters[3].Value = zhangtaoData.ztId;
using (SqlConnection conn = new SqlConnection())
{
conn.ConnectionString = SqlHelper.ConnectionStringLocalTransaction;
SqlHelper.ExecuteNonQuery(conn, CommandType.StoredProcedure, "ZT_ADD", sqlParameters);
}
}
希望对你有帮助!!! --------------------编程问答--------------------
2楼真牛,你的静态方法可以实例化后调用呀? --------------------编程问答-------------------- zhangtaoData zhangtaoData这个要注意!! --------------------编程问答-------------------- zhangtaoData是数据库名称?
补充:.NET技术 , ASP.NET