parametername对应的是存储过程中参数的名称
sourcecolumn 对应DataSet 的源列的名称
因为sqlparameter和table之间的连结可以是双向的
解决方案 »
- 关于贴吧的小问题~
- 页面的DropDownList的信息传递到另一个页面的DropDownList中
- VSS使用问题
- 做个调查,你们会使用NUnit来做测试驱动开发吗?
- 如何找到Datalist 里面的 <HeaderTemplate>??求高手
- 问一个超难的问题,如果一两句话讲不清楚,请帮我推荐学习用书
- 孟子进~(顶者有分)
- datalist中放label绑定数据库中数据,当记录长时一行只显示一笔记录,记录短时显示两笔记录,可以实现吗?
- 如何解决数据库被n个客户端同时修改时出现的数据不一致问题?
- 求助:简单的参数问题
- 在datagrid中添加数据!
- 用VB.net开发asp.net-web应用程序时可以嵌套javascript脚本和css样式这些脚本和样式吗?
public SqlParameter(
string parameterName, //参数名
SqlDbType dbType, //枚举类型,参数的 数据类型 如 SqlDbType.VarChar,SqlDbType.Int
int size, /*参数的 Size (:D,hehe,废话) 。
和 dbType相关,如数据库中相应字段为VARCHAR(255),则这两个参数分别为
SqlDbType.VarChar , 255
如果数据库中相应字段为 INT,则相应为 SqlDbType.Int, 4 ... */
ParameterDirection direction, //枚举类型 ,ParameterDirection.Output用于构造输出参数,ParameterDirection.Input ...
bool isNullable, //
byte precision,
byte scale,
string sourceColumn,
DataRowVersion sourceVersion,
object value
);给你一个完整调用过程的例子,From PetShop 1.5 public int IdentityValidate(string username,string password)
{
int intReturn=0;
Database data = new Database();
SqlParameter[] prams = {
data.MakeInParam("@UserName", SqlDbType.VarChar, 30, username),
data.MakeInParam("@Password", SqlDbType.VarChar, 30, password),
data.MakeOutParam("@UserId", SqlDbType.Int, 4)
}; ExecuteNonQuery("upLogin", prams);
intReturn = (int)prams[2].Value;
return intReturn;
} private SqlParameter MakeInParam(string ParamName, SqlDbType DbType, int Size, object Value)
{
return MakeParam(ParamName, DbType, Size, ParameterDirection.Input, Value);
}
private SqlParameter MakeOutParam(string ParamName, SqlDbType DbType, int Size)
{
return MakeParam(ParamName, DbType, Size, ParameterDirection.Output, null);
}
private SqlParameter MakeParam(string ParamName, SqlDbType DbType, Int32 Size, ParameterDirection Direction, object Value)
{
SqlParameter param; if(Size > 0)
param = new SqlParameter(ParamName, DbType, Size);
else
param = new SqlParameter(ParamName, DbType); param.Direction = Direction;
if (!(Direction == ParameterDirection.Output && Value == null))
param.Value = Value; return param;
} private SqlCommand CreateCommand(SqlConnection conn,string procName, SqlParameter[] prams)
{
if(conn.State != ConnectionState.Open)
conn.Open(); SqlCommand cmd = new SqlCommand(procName, conn);
cmd.CommandType = CommandType.StoredProcedure; if (prams != null)
{
foreach (SqlParameter parameter in prams)
cmd.Parameters.Add(parameter);
}
return cmd;
}
private void ExecuteNonQuery(string procName, SqlParameter[] prams)
{
SqlCommand cmd = new SqlCommand();
using(SqlConnection con = new SqlConnection(CONN_STRING))
{
cmd = CreateCommand(con,procName, prams);
cmd.ExecuteNonQuery();
}
return;
}
{
int intReturn=0;
SqlParameter[] prams = {
MakeInParam("@UserName", SqlDbType.VarChar, 30, username),
MakeInParam("@Password", SqlDbType.VarChar, 30, password),
MakeOutParam("@UserId", SqlDbType.Int, 4)
}; ExecuteNonQuery("upLogin", prams);
intReturn = (int)prams[2].Value;
return intReturn;
}
个人觉得PetShop1.5和2.0的两个Database类都够精当,绝对的初学者必修课。