C# 在方法c之间传递字符串值#
我有一个公共字符串需要在整个程序中使用C# 在方法c之间传递字符串值#,c#,string,methods,properties,C#,String,Methods,Properties,我有一个公共字符串需要在整个程序中使用 public string connectionString = null; 我指定的值如下所示: internal string accessString() { return connectionString = @"Provider=Microsoft.ACE.OLEDB.12.0;" + @"Data Source=" + DBFileName + ";" + @"Persist Secur
public string connectionString = null;
我指定的值如下所示:
internal string accessString()
{
return connectionString =
@"Provider=Microsoft.ACE.OLEDB.12.0;" +
@"Data Source=" + DBFileName + ";" +
@"Persist Security Info=False";
}
当我第一次运行该方法时,该值是正确的,但是一旦该方法的执行完成,该值将返回null
internal void selectDB()
{
try
{
OpenFileDialog choofdlog = new OpenFileDialog();
choofdlog.Filter = "All Files (*.*)|*.*";
choofdlog.FilterIndex = 1;
if (choofdlog.ShowDialog() == DialogResult.OK)
{
DBFileName = choofdlog.FileName;
connectionString = accessString();
Saveproducts();
}
MessageBox.Show(connectionString);
}
catch (Exception ex)
{
MessageBox.Show(ex.ToString());
}
}//select db ends
上述方法完美地获得了值
internal void writeContents()// read all the text files to the Data base
{
try
{
MessageBox.Show(connectionString);
}
}
上面的这个方法返回null,即使它在第二个方法成功地为connectionString赋值后运行
如何修复此问题,我不想使用静态会话来存储连接字符串,也可以使用
connectionString as Static variable
然后它将不会重置该值。使用会话存储连接字符串,或者您可以使用
connectionString as Static variable
然后它将不会重置该值
如何更改此值,以便该方法在整个过程中创建此值
节目
您可以这样做,accessString
现在总是返回有效的连接字符串
public string connectionString = null;
accessString();
internal string accessString()
{
return string.IsNullOrEmpty(connectionString)?
@"Provider=Microsoft.ACE.OLEDB.12.0;" +
@"Data Source=" + DBFileName + ";" +
@"Persist Security Info=False" : connectionString;
}
如何更改此值,以便该方法在整个过程中创建此值
节目
您可以这样做,accessString
现在总是返回有效的连接字符串
public string connectionString = null;
accessString();
internal string accessString()
{
return string.IsNullOrEmpty(connectionString)?
@"Provider=Microsoft.ACE.OLEDB.12.0;" +
@"Data Source=" + DBFileName + ";" +
@"Persist Security Info=False" : connectionString;
}
你能展示更多你使用这个类的代码吗?您何时调用
accessString()
以及何时访问connectionString()
?很难确切知道您做错了什么,但可能是由于某个对象的实例超出了范围-需要更多的代码来确认,所有当前的答案都是推测性的(虽然使connectionString
静态可能会工作,但可能会导致其他问题,具体取决于您的应用程序)您是否可以显示使用该类的更多代码?何时调用accessString()
以及何时访问connectionString()
?很难确切知道您做错了什么,但可能是由于某个对象超出范围的实例造成的-需要更多的代码进行确认,所有当前的答案都是推测性的(尽管使连接字符串
静态可能会起作用,但可能会导致其他问题,具体取决于您的应用程序)就我所知,你不能在一种方法中使用作废和退货啊……我的错,我忽略了它。谢谢@ChongChing更正。就我所知,你不能在一种方法中使用作废和退货啊……我的错,我忽略了它。谢谢@ChongChing更正。