C#中怎样可以把System.Type转为SqlDbType???

boredom_vc 2004-01-07 05:51:46
急!
用来实现这个函数的!!
public SqlCommand AddCommandParameter(string strComSql,string [] paraName,string [] ColName,SqlDbType[] sqltype,bool [] isNull,int[] FieldSize)
{
SqlCommand cmm = new SqlCommand();
cmm.CommandText = strComSql;
//cmm.Connection = this.conn;

for(int i=0;i<ColName.Length;i++ )
{
cmm.Parameters.Add(new SqlParameter(paraName[i], sqltype[i], FieldSize[i],
ParameterDirection.Input, isNull[i], ((System.Byte)(0)),
((System.Byte)(0)),ColName[i] , DataRowVersion.Current, null));
}
return cmm;
}
...全文
364 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
xixigongzhu 2004-01-08
  • 打赏
  • 举报
回复
case TypeCode.Object:
return SqlDbType.Variant;

改一下:
default:
if (t == typeof(byte[])) {
return SqlDbType.Binary;
}
return SqlDbType.Variant;
xixigongzhu 2004-01-08
  • 打赏
  • 举报
回复
static SqlDbType ConvertType(Type t) {
switch (Type.GetTypeCode(t)) {
case TypeCode.Boolean:
return SqlDbType.Bit;
case TypeCode.Byte:
return SqlDbType.TinyInt;
case TypeCode.DateTime:
return SqlDbType.DateTime;
case TypeCode.Decimal:
return SqlDbType.Decimal;
case TypeCode.Double:
return SqlDbType.Float;
case TypeCode.Int16:
return SqlDbType.SmallInt;
case TypeCode.Int32:
return SqlDbType.Int
case TypeCode.Int64:
return SqlDbType.BigInt;
case TypeCode.SByte:
return SqlDbType.TinyInt;
case TypeCode.Single:
return SqlDbType.Real;
case TypeCode.String:
return SqlDbType.NVarChar;
case TypeCode.UInt16:
return SqlDbType.SmallInt;
case TypeCode.UInt32:
return SqlDbType.Int;
case TypeCode.UInt64:
return SqlDbType.BigInt;
case TypeCode.Object:
return SqlDbType.Variant;
}
}
boredom_vc 2004-01-07
  • 打赏
  • 举报
回复
//自定义事件。
//根据用户单击的菜单名字,来把相应的表填进ListView中。
public void Menu_Click(object sender, System.EventArgs e)
{
try
{
string strSql;
MenuItem Tmenu=(MenuItem)sender;
SqlDataReader myreader;
myDS=new DataSet();
DataClass CmbData=new DataClass();

//获取单击表的表名。
strSql="select tableEname from informationtable where tableCname='" + Tmenu.Text.Trim() + "'";
SqlCommand sqlcomm= new SqlCommand(strSql,CmbData.SqlConn);
myreader=sqlcomm.ExecuteReader();
myreader.Read();
strTableName=myreader.GetString(0);

//生成该表的查询语句。
strSql="select * from " + strTableName;
myreader.Close();

//set the DataSet
mySqlDA=new SqlDataAdapter(strSql,CmbData.SqlConn);
mySqlDA.Fill(myDS);

//listview 为该窗体中的对象
//为listview添加列名
for(int i=0;i<myDS.Tables[0].Columns.Count;i++)
{
lstAddr.Columns.Add(myDS.Tables[0].Columns[i].ColumnName , 100, HorizontalAlignment.Left);

}

//把所有的Lable都设置为相应的列名
this.labNO.Text=myDS.Tables[0].Columns[0].ColumnName;
this.LabName.Text=myDS.Tables[0].Columns[1].ColumnName;
this.labMeno.Text=myDS.Tables[0].Columns[2].ColumnName;

//设置插入记录格式
//设置插入记录的SQL语句。
string strInsert="INSERT INTO "+ this.strTableName+"("+labNO.Text+"," + LabName.Text+","+this.labMeno.Text
+ ") VALUES (@Tid, @Tname, @Tmeno)";
//设置command
string [] strPara={"@Tid","@Tname","@Tmeno"};
string [] strFieldName={labNO.Text,LabName.Text,labMeno.Text};
bool [] FieldIsNull=new Boolean[myDS.Tables[0].Columns.Count];
int [] FieldSize=new Int[3];
//取得Table中,每一列的数据类型。
SqlDbType[] sqlType=new SqlDbType[myDS.Tables[0].Columns.Count];
for(int i=0;i<myDS.Tables[0].Columns.Count;i++)
{
sqlType[i]=(SqlDbType)myDS.Tables[0].Columns[i].DataType;
FieldIsNull[i]=myDS.Tables[0].Columns[i].AllowDBNull;
FieldSize[i]=myDS.Tables[0].Columns[i].MaxLength;
}

mycomm=CmbData.AddCommandParameter(strInsert,strPara,strFieldName,sqlType,FieldIsNull,FieldSize);
foreach(DataRow myRow in myDS.Tables[0].Rows)
{
//添加进ListView表中
ListViewItem lstViewItem=new ListViewItem();
int i=0;
foreach(DataColumn myColumn in myDS.Tables[0].Columns)
{
MessageBox.Show(myRow[myColumn].ToString() );
//添加第一项;
if(i==0)
{
lstViewItem.Text=myRow[myColumn].ToString();
i++;
}
else
lstViewItem.SubItems.Add(myRow[myColumn].ToString());
}
lstAddr.Items.Add(lstViewItem);

}
}
catch(Exception myExce)
{
MessageBox.Show(myExce.ToString());
}
}
boredom_vc 2004-01-07
  • 打赏
  • 举报
回复
public SqlCommand AddCommandParameter(string strComSql,string [] paraName,string [] ColName,SqlDbType[] sqltype,bool [] isNull,int[] FieldSize)
{
SqlCommand cmm = new SqlCommand();
cmm.CommandText = strComSql;
//cmm.Connection = this.conn;

for(int i=0;i<ColName.Length;i++ )
{
cmm.Parameters.Add(new SqlParameter(paraName[i], sqltype[i],
FieldSize[i],ParameterDirection.Input, isNull[i], ((System.Byte)(0)),((System.Byte)(0)),ColName[i] , DataRowVersion.Current, null));
}
return cmm;
}

110,535

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧