如何将类项添加到数据库 [英] How do I add a class item to a database
本文介绍了如何将类项添加到数据库的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
如何将类项添加到数据库?
我在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屋!
查看全文