如何将类项添加到数据库 [英] How do I add a class item to a database

查看:47
本文介绍了如何将类项添加到数据库的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

如何将类项添加到数据库?



我在classlist [n] .col1中的@ col1中收到错误。

  public   class  Class1 
{
public Int32 id { get < /跨度>; set ; }
public string col1 { get ; set ; }
public string col2 { get ; set ; }
public string col3 { get ; set ; }
}





列表< Class1> classlist =  new  List< Class1>(); 
classlist.Add( new Class1(){id = 1 ,col1 = 11,col2 = 22,col3 = 33});
classlist.Add( new Class1(){id = 2 ,col1 = 44,col2 = 55,col3 = 66});
classlist.Add( new Class1(){id = 3 ,col1 = 77,col2 = 88,col3 = 99});
string connStr = ConfigurationManager.ConnectionStrings [ MDFdb]的ConnectionString。
string cmdStr = INSERT INTO [Table1 ](col1,col2,col3)VALUES(@ col1,@ col2,@ col3);;
for int n = 1 ; n < = classlist.Count; n ++)
{
try
{
使用(SqlConnection conn = new SqlConnection(connStr))
{
使用(SqlCommand cmd = new SqlCommand(cmdStr,conn))
{
conn.Open();
cmd.ExecuteNonQuery();
cmd.Parameters.Add( @ col1,classlist [n] .col1) ;
cmd.Parameters.Add( @ col2,classlist [n] .col2) ;
cmd.Parameters.Add( @ col3,classlist [n] .col3) ;
conn.Close();
conn.Dispose();
}
}
}
catch (例外情况)
{
Label1.Text = ex.ToString();
}
}





错误代码:

 System.Data.SqlClient.SqlException(0x80131904):必须声明标量变量@ col1。在System.Data.SqlClient.SqlClient上的System.Data.SqlClient.SqlConnection.OnError(SqlException异常,Boolean breakConnection,Action`1 wrapCloseInAction)处于System.Data.SqlClient.SqlInternalConnection.OnError(SqlException异常,Boolean breakConnection,Action`1 wrapCloseInAction) System.Data.SqlClient上的System.Data.SqlClient.TdsParser.TryRun(RunBehavior runBehavior,SqlCommand cmdHandler,SqlDataReader dataStream,BulkCopySimpleResultSet bulkCopyHandler,TdsParserStateObject stateObj,Boolean& dataReady)中的.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj,Boolean callerHasConnectionLock,Boolean asyncClose) System.Data上的System.Data.SqlClient.SqlCommand.InternalExecuteNonQuery(TaskCompletionSource`1完成,String methodName,Boolean sendToPipe,Int32 timeout,Boolean asyncWrite)中的.SqlCommand.RunExecuteNonQueryTds(String methodName,Boolean async,Int32 timeout,Boolean asyncWrite)。 ClassToMDF._Default.Button1_Click(O中的SqlClient.SqlCommand.ExecuteNonQuery() bject sender,EventArgs e)in C:\Users\User\path \Default.aspx.cs:第36行ClientConnectionId:e373b91f-0471-4487-9667-bed0597b6391 

解决方案

尝试将类序列化为xml或Json字符串并将其保存到数据库中。



这是一个好文章

How do I add a class item to a database?

I am getting an error in "@col1" in "classlist[n].col1".

public class Class1
{
    public Int32 id { get; set; }
    public string col1 { get; set; }
    public string col2 { get; set; }
    public string col3 { get; set; }
}



List<Class1> classlist = new List<Class1>();
classlist.Add(new Class1() { id = 1, col1 = "11", col2 = "22", col3="33" });
classlist.Add(new Class1() { id = 2,  col1 = "44", col2 = "55", col3="66" });
classlist.Add(new Class1() { id = 3,  col1 = "77", col2 = "88", col3="99" });
string connStr = ConfigurationManager.ConnectionStrings["MDFdb"].ConnectionString;
string cmdStr = "INSERT INTO [Table1] (col1,col2,col3) VALUES (@col1,@col2,@col3);";
for (int n = 1; n <= classlist.Count; n++)
{
    try
    {
        using (SqlConnection conn = new SqlConnection(connStr))
        {
            using (SqlCommand cmd = new SqlCommand(cmdStr, conn))
            {
                conn.Open();
                cmd.ExecuteNonQuery();
                cmd.Parameters.Add("@col1", classlist[n].col1);
                cmd.Parameters.Add("@col2", classlist[n].col2);
                cmd.Parameters.Add("@col3", classlist[n].col3);
                conn.Close();
                conn.Dispose();
            }
        }
    }
    catch (Exception ex)
    {
        Label1.Text=ex.ToString();
    }
}



Error Code:

System.Data.SqlClient.SqlException (0x80131904): Must declare the scalar variable "@col1". at System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection, Action`1 wrapCloseInAction) at System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection, Action`1 wrapCloseInAction) at System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj, Boolean callerHasConnectionLock, Boolean asyncClose) at System.Data.SqlClient.TdsParser.TryRun(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj, Boolean& dataReady) at System.Data.SqlClient.SqlCommand.RunExecuteNonQueryTds(String methodName, Boolean async, Int32 timeout, Boolean asyncWrite) at System.Data.SqlClient.SqlCommand.InternalExecuteNonQuery(TaskCompletionSource`1 completion, String methodName, Boolean sendToPipe, Int32 timeout, Boolean asyncWrite) at System.Data.SqlClient.SqlCommand.ExecuteNonQuery() at ClassToMDF._Default.Button1_Click(Object sender, EventArgs e) in C:\Users\User\path\Default.aspx.cs:line 36 ClientConnectionId:e373b91f-0471-4487-9667-bed0597b6391 

解决方案

Try serializing the class into a xml or Json String and save that to your Database.

Here is a good article


这篇关于如何将类项添加到数据库的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆